Python 如何使用循环刮取页面的所有项目

Python 如何使用循环刮取页面的所有项目,python,for-loop,beautifulsoup,Python,For Loop,Beautifulsoup,我试图从某个网站上搜集并列出24个项目。相反,它会24次显示相同的项目 为了得到第一个价格,我做了以下几点: gamma_html=uClient.read() uClient.close() page_soup=soup(gamma_html,“html.parser”) hout=page_soup.findAll(“文章”,{“类”:“mc产品瓷砖产品-在线-状态-出售\u不可订购\u库存产品-状态-出售”}) 打印透镜(hout) i=0 contain=hout[i] 品牌=包含.di

我试图从某个网站上搜集并列出24个项目。相反,它会24次显示相同的项目

为了得到第一个价格,我做了以下几点:

gamma_html=uClient.read()
uClient.close()
page_soup=soup(gamma_html,“html.parser”)
hout=page_soup.findAll(“文章”,{“类”:“mc产品瓷砖产品-在线-状态-出售\u不可订购\u库存产品-状态-出售”})
打印透镜(hout)
i=0
contain=hout[i]
品牌=包含.div.img[“alt”]
price=contain.findAll(“div”,“class”:“当前产品价格”})
price=str(price).split(“”[1]
价格=价格分割(“.”[0]
price_2=contain.findAll(“span”,{“class”:“产品价格十进制”})
price_2=str(price_2).split(“”[1]
价格2=价格2.拆分(“”[0]
价格_3=(价格+”,“+价格_2)
产品=品牌+价格\u 3
印刷品(产品)
对于范围(24)内的i:
印刷品(产品)
如前所述,它可以打印24行。但它没有列出所有不同的结果,而是列出了第一个结果(可能是因为i=0)。我非常不擅长编码,所以我不知道要改变什么才能得到想要的结果。有什么想法吗?

试试下面的代码

from bs4 import BeautifulSoup
import requests
url = "https://www.gamma.nl/assortiment/l/hout/bouwhout/hardhout"
html = requests.get(url)
soup = BeautifulSoup(html.text, 'html.parser')

for item in soup.select("article.mc-product-tile"):
    print("title : " + item.select_one("div.product-name a").text)
    print("Price : " + item.select_one("div.wishlist-icon")['data-productprice'].strip())
输出:

title : Lat hardhout geschaafd wit gegrond 9x116 mm 210 cm
Price : 16.99
title : Lat geschaafd hardhout 12x55 mm 210 cm
Price : 8.49
title : Lat hardhout geschaafd 20x28 mm 210 cm
Price : 9.59
title : Plank eiken 19x195 mm 250 cm
Price : 29.49
title : Lat hardhout geschaafd 28x44 mm 210 cm
Price : 14.99
title : Lat hardhout geschaafd 9x116 mm 210 cm
Price : 14.99
title : Lat hardhout geschaafd wit gegrond 12x68 mm 210 cm
Price : 14.99
title : Lat hardhout geschaafd 20x44 mm 210 cm
Price : 12.49
title : Glaslat hardhout wit gegrond 17x28 mm 270 cm
Price : 10.99
title : Lat hardhout geschaafd wit gegrond 12x44 mm 210 cm
Price : 9.99
title : Lat hardhout geschaafd 12x68 mm 210 cm
Price : 12.99
title : Lat hardhout geschaafd 20x68 mm 210 cm
Price : 15.99
title : Lat hardhout geschaafd 9x35 mm 210 cm
Price : 6.79
title : Lat geschaafd hardhout 12x12 mm 270 cm
Price : 3.29
title : Lat hardhout geschaafd 12x35 mm 210 cm
Price : 8.29
title : Lat geschaafd hardhout 9x44 mm 270 cm
Price : 7.49
title : Lat geschaafd hardhout 12x27 mm 270 cm
Price : 6.99
title : Lat hardhout geschaafd 12x116 mm 210 cm
Price : 19.49
title : Lat hardhout geschaafd 9x28 mm 210 cm
Price : 4.49
title : Lat hardhout geschaafd 44x44 mm 210 cm
Price : 24.99
title : Lat geschaafd hardhout 12x44 mm 270 cm
Price : 8.99
title : Lat geschaafd hardhout 9x27 mm 270 cm
Price : 5.19
title : Lat hardhout geschaafd 44 x 68 mm 210 cm
Price : 43.98
title : Lat hardhout geschaafd 20x116 mm 210 cm
Price : 34.95

好吧,您根本不会更改循环中的
产品。当然,它将打印相同的内容。请注意:
range(24)
range(0,24,1)
相同。对,要做到这一点,我需要一些东西来更改i,对吗?我该怎么做?更改
i
不会更改
产品
(而且
i
会更改每个迭代,它首先是0,然后是1,然后是2,以此类推)。你能发送一个网页URL来理解你在解析什么吗?当然!我只是随便挑了一个:请把html和你的问题一起发布。有些用户在访问其他网站时会感到不舒服。上面说“没有名为请求的模块”。此模块来自何处?您是否导入了请求模块?是;回溯(最后一次调用):文件“fuck2.py”,第2行,在导入请求ImportError:没有名为requestsGo的模块到命令提示符类型
pip install requests
安装成功后,您将能够运行代码。是的,声明标题和价格的空列表,并在每次迭代中追加值。