因此,我有以下两个美丽的发现和网页,我的网页拉屎:
r = requests.get("https://www.viperprint.pl/produkt/arkusze-plano/AP01")
soup = BeautifulSoup(r.content)
elems = soup.find_all('a', {'class': 'tabela_cenowa eprint_product_link add_to_cart_link'})
hehes = soup.find_all('a', {'id': 'dLabel'})
我需要的是一个双for循环,它将列表打印到.csv文件中的不同列。你知道吗
我的问题是:
>>> for elem, hehe in zip(elems, hehes):
... nazwa = hehe.get('title')
... qty = elem.attrs.get('data-qty')
... print(nazwa, qty)
给我输出吼声。这是错误的,因为列1中的每个元素(即“Arkusze PLANO”和下面的所有内容)应该相邻,并且只有列2中的第一个数字(“100”)也应该在一行中。你知道吗
输出错误:
('Arkusze PLANO', '100')
('A1+ (880 x 630 mm)', '250')
('Dwustronnie kolorowe (4+4 CMYK)', '500')
(u'Kreda b\u0142ysk 130g', '1000')
('Bez uszlachetniania (0+0)', '1500')
(None, '2000')
预期产量:
'Arkusze PLANO';'A1+ 880 x 630 mm';'Dwustronnie kolorowe 4+4 CMYK';u'Kreda b\u0142ysk 130g';'Bez uszlachetniania 0+0';'100'
我要做的是使用.attrs函数,如下所示:
for elem, hehe in zip(elems, hehes):
nazwa = hehe[0].get('title')
format = hehe[1].get('title')
qty = elem.attrs.get('data-qty')
print(nazwa, format, qty)
……但我犯了以下错误,不知道如何继续:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib/python2.7/site-packages/bs4/element.py", line 905, in __getitem__
return self.attrs[key]
KeyError: 0
我很抱歉这么长的帖子,但我想提供尽可能多的细节。你知道吗
这将为您提供在列表中查找的所需输出:
输出:
但是你说你想把它放到csv里。所以你可以把它放在一张桌子上,如果你想的话,也可以这样做
我添加了另一个循环以获得完全需要的输出。你知道吗
谢谢大家的帮助!你知道吗
相关问题 更多 >
编程相关推荐