我在找易趣上卖出去的东西。我在找:
https://www.ebay.com/sch/i.html?_from=R40&_nkw=oakley+sunglasses&_sacat=0&Brand=Oakley&rt=nc&LH_Sold=1&LH_Complete=1&_ipg=200&_oaa=1&_fsrp=1&_dcat=79720
下面是我的代码,我加载在html代码,并转换为soup对象:
ebay_url = 'https://www.ebay.com/sch/i.html?_from=R40&_nkw=oakley+sunglasses&_sacat=0&Brand=Oakley&rt=nc&LH_Sold=1&LH_Complete=1&_ipg=200&_oaa=1&_fsrp=1&_dcat=79720'
response = requests.get(ebay_url)
soup = bs(response.text, 'html.parser')
#print(soup.prettify())
我的工作得到的标题,价格,和日期出售,然后加载到一个csv文件.下面是代码,我有标题:
title = soup.find_all("h3", "s-item__title s-item__title--has-tags")
print(title)
listing_titles = []
for i in range(1,len(title)):
listing_titles.append(title[i].text)
print(listing_titles)
它只返回空的方括号,如[]。html soup对象打印正确,响应打印为200。看起来我的代码应该可以工作,并且找到发布价格和销售日期应该是相似的。我想知道这是否是 selenium 的工作。希望有人能帮助!谢谢!
2条答案
按热度按时间9avjhtql1#
首先,你可以找到所有基于类的div,然后在上面循环,得到标题、价格和日期
输出:
jexiocij2#
响应可以是空的,因为
requests
请求可能被阻止,因为requests
库中的默认user-agent
是python-requests
,以告知网站它是发送请求的机器人或脚本。Check what user agent you have。除了提供浏览器用户代理之外的附加步骤可以是旋转
user-agent
,例如,以在PC、移动设备和平板电脑之间切换,以及在例如Chrome、Firefox、Safari、Edge等浏览器之间切换。也可以使用分页从所有页面获取所有结果,解决方案是使用无限
while
循环并测试会导致其退出的内容(按钮、元素)。在我们的示例中,这是页面上的一个按钮(
.pagination__next
选择器)。检查在线IDE中的代码。
输出:创建文件:"易趣_产品. csv"
作为一种替代方案,您可以使用SerpApi的Ebay Organic Results API,这是一个付费API,具有在后端处理块和解析的免费计划。
示例代码:
输出:创建文件:"易趣_产品. csv"
如果你想知道更多关于网站抓取的信息,有一篇13 ways to scrape any public data from any website的博客文章。