Python 在一个页面的网站上循环浏览所有产品
有一个只有一页的网站,上面有产品(比如亚马逊),我想知道产品名称、价格和发布日期。 我的代码只显示第一个产品 我正在为Python3使用beautifulsoup库Python 在一个页面的网站上循环浏览所有产品,python,python-3.x,beautifulsoup,Python,Python 3.x,Beautifulsoup,有一个只有一页的网站,上面有产品(比如亚马逊),我想知道产品名称、价格和发布日期。 我的代码只显示第一个产品 我正在为Python3使用beautifulsoup库 from bs4 import BeautifulSoup r = requests.get('https://tap.az/all/consumer-electronics/phones?p%5B749%5D=3860') soup = BeautifulSoup(r.text, 'html.parser') results =
from bs4 import BeautifulSoup
r = requests.get('https://tap.az/all/consumer-electronics/phones?p%5B749%5D=3860')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class': 'products-i'})
records = []
for result in results:
model = soup.find('div', attrs={'class': 'products-name'}).text
price = soup.find('span', attrs={'class': 'price-val'}).text + ' AZN'
date_and_place = soup.find('div', attrs={'class': 'products-created'}).text
url = soup.find('a', attrs={'class': 'products-link'}) # NEED UPDATE! URGENT!
records.append((model, price, date_and_place))
print(records)
我希望所有产品都显示在控制台上。您正在搜索
r.text
(soup.find(…)
)循环中
find\u all返回一个结果数组
,因此要获取所需的数据,您应该在结果
对象(result.find(…)
)中搜索结果:
循环
from bs4 import BeautifulSoup
r = requests.get('https://tap.az/all/consumer-electronics/phones?p%5B749%5D=3860')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class': 'products-i'})
records = []
for result in results:
model = result.find('div', attrs={'class': 'products-name'}).text
price = result.find('span', attrs={'class': 'price-val'}).text + ' AZN'
date_and_place = result.find('div', attrs={'class': 'products-created'}).text
url = result.find('a', attrs={'class': 'products-link'}) # NEED UPDATE! URGENT!
records.append((model, price, date_and_place))
print(records)
缩进
记录。追加((型号、价格、日期和地点))
以使其符合loop@DeveshKumarSingh它返回相同的第一个产品信息,但多次返回。然后需要检查逻辑。您在结果上循环,但似乎从未使用结果
变量再问一个问题,它不会返回我所有的产品,在一个网站上,它会返回约1500个项目,但会返回约100个。请检查以下情况:1)网站可能有延迟加载,请求
无法处理2)网站可能有其他类型的javascript修改查找所有
选择器3)可能网站有一个API,您可以直接查询,而不是下载整个网站。