我对此非常陌生,但我设法建立了一个刮刀。
唯一的问题是我只得到了页面的最后一项。
该页面有25条结果。我如何获得页面上的所有项目?
非常感谢你。
from lxml import html
import requests
from bs4 import BeautifulSoup
import re
import csv
r = requests.get("http://www.mediamarkt.be/mcs/productlist/_128-tot-150-cm-51-tot-59-,98952,501091.html?langId=-17")
soup = BeautifulSoup((r.content),'lxml')
links = soup.find_all("h2")
g_data = soup.find_all("div", {"class": "price small"})
for item in g_data:
prijs=item.text.encode("utf-8")
for link in links:
if "TV" in link.text:
product=link.text.encode("utf-8").strip()
print prijs
print product
答案 0 :(得分:1)
您正在寻找该产品,并且每次使用该产品时,您都会使用下一个产品覆盖该产品。这就是这一行:
product=link.text.encode("utf-8").strip()
产品每次循环都会被覆盖,直到完成为止,并且您从页面中留下最后一个产品。您要么想要将每个结果附加到上一个结果...
product = ""
for link in links:
if "TV" in link.text:
product+=link.text.encode("utf-8").strip() + " "
或将结果存储在列表中。