我需要用Python清理一行的信息

2024-04-20 08:46:19 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我已经能够从一个网站上抓取我需要的信息,清理和格式化它的方式我想要的。问题是我需要在一行的描述和价格。我已经能够做到这一点,但与缩进的空间。我想不出怎么在一条线上把它全部清理干净。你知道吗

感谢您的帮助

谢谢

import requests
from bs4 import BeautifulSoup
import csv

b = open ('canadianappliances.csv', 'a', newline='')
a = csv.writer(b, delimiter=',')


r = requests.get("http://www.canadianappliance.ca/Refrigerators-And-Fridges-3/Full-Size-Refrigerators-38/French-Door-Refrigerators-48/?per_page=all")

r.content

soup = BeautifulSoup(r.content, "lxml")


g_data = soup.find_all("h2", {"class": "product_link"})
p_data = soup.find_all("td", {"class": "pi-price-final"})

for item in g_data:
    print(item.get_text(strip=True).replace("\n", " "))

for price in p_data:
    print(price.get_text(strip=True).replace("\n", " "))

for g, p in zip(g_data, p_data):
    print(g.text, p.text)

Tags: csvtextinimportfordatagetcontent
1条回答
网友
1楼 · 发布于 2024-04-20 08:46:19

擦掉的g_datap_data的文本值的边上有很多空白。您需要删除它们才能在一行中打印每个项目。比如:

>>> for g,p in zip(g_data, p_data):
...     print g.text.strip().replace('\n',' '), p.text.strip()
...
Samsung - RF220NCTASR $1,397.72
Samsung - RF18HFENBSR $1,599.00
Samsung - RF23HCEDBSR $2,179.92
Samsung - RF28HMEDBSR $2,498.78
# and it goes on and on and on

如果您想知道print语句的括号去了哪里,那么我使用的是python2.7。你知道吗

相关问题 更多 >