gpt4 book ai didi

python - 为什么我只能抓取 eBay 上前 4 页的结果?

转载 作者:行者123 更新时间:2023-12-04 08:53:09 25 4
gpt4 key购买 nike

我有一个简单的脚本来分析 eBay 上的销售数据(棒球交易卡)。前 4 页似乎工作正常,但在第 5 页,它根本不再加载所需的 html 内容,我无法弄清楚为什么会发生这种情况:

#Import statements
import requests
import time
from bs4 import BeautifulSoup as soup
from tqdm import tqdm
#FOR DEBUG
Page_1="https://www.ebay.com/sch/213/i.html?_from=R40&LH_Sold=1&_sop=16&_pgn=1"

#Request URL working example
source=requests.get(Page_1)
time.sleep(5)
eBay_full = soup(source.text, "lxml")
Complete_container=eBay_full.find("ul",{"class":"b-list__items_nofooter"})
Single_item=Complete_container.find_all("div",{"class":"s-item__wrapper clearfix"})
items=[]
#For all items on page perform desired operation
for i in tqdm(Single_item):
items.append(i.find("a", {"class": "s-item__link"})["href"].split('?')[0].split('/')[-1])
#Works fine for Links_to_check[0] upto Links_to_check[3]

但是,当我尝试抓取第五页或更多页面时,会发生以下情况:

Page_5="https://www.ebay.com/sch/213/i.html?_from=R40&LH_Sold=1&_sop=16&_pgn=5"

source=requests.get(Page_5)
time.sleep(5)
eBay_full = soup(source.text, "lxml")
Complete_container=eBay_full.find("ul",{"class":"b-list__items_nofooter"})
Single_item=Complete_container.find_all("div",{"class":"s-item__wrapper clearfix"})
items=[]
#For all items on page perform desired operation
for i in tqdm(Single_item):
items.append(i.find("a", {"class": "s-item__link"})["href"].split('?')[0].split('/')[-1])

----> 5 Single_item=Complete_container.find_all("div",{"class":"s-item__wrapper clearfix"})
6 items=[]
7 #For all items on page perform desired operation

AttributeError: 'NoneType' object has no attribute 'find_all'

这似乎是后面页面的 eBay_full 汤中缺少 ul 类 b-list__items_nofooter 的逻辑结果。但问题是为什么这些信息丢失了?滚动浏览汤,所有感兴趣的项目似乎都不存在。正如预期的那样,该信息出现在网页本身上。谁能指导我?

最佳答案

根据 @Sebastien D 他的评论,问题已解决

在 headers 变量中仅放入这些浏览器之一,以及当前的稳定版本号(例如 Chrome/53.0.2785.143,最新找到的 here )

headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}

source= requests.get(Page_5, headers=headers, timeout=2)

关于python - 为什么我只能抓取 eBay 上前 4 页的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63983368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com