首页 > 解决方案 > 在 Etsy 上找不到合适的网页抓取类

问题描述

我正在尝试从 Etsy 中抓取产品信息,并且正在按照一个相对简单的教程进行操作。

这是我当前的代码:

headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9'}

#opening up connection, grabbing url 
url = "https://www.etsy.com/sg-en/search/bath-and-beauty/soaps?q=green+beauty&explicit=1&ref=pagination&page=1"
uclient = ureq(url)
page_html = uclient.read()

#html parsing
page_soup = soup(page_html, 'lxml')
print(page_soup.p)

#grabs each product 
listings = page_soup.findAll("li", {"class":"wt-list-unstyled wt-grid__item-xs-6 wt-grid__item-md-4 wt-grid__item-lg-3 wt-order-xs-0 wt-order-sm-0 wt-order-md-0 wt-order-lg-0 wt-order-xl-0 wt-order-tv-0 grid__item-xl-fifth tab-reorder"})
len(listings)

最后一步重复输出0,专门针对这个类,所以我不确定我做错了什么。根据检查代码,这是要使用的适当的类名和 css 类类型。 Etsy 在此处检查代码

非常感谢任何帮助!谢谢 (-:

标签: pythonclassweb-scrapingbeautifulsoup

解决方案


bs4 的特质(或者我可能不完全理解它......),试试这个:

listings = page_soup.find_all("li", class_="wt-list-unstyled wt-grid__item-xs-6 wt-grid__item-md-4 wt-grid__item-lg-3 wt-order-xs-0 wt-order-sm-0 wt-order-md-0 wt-order-lg-0 wt-order-xl-0 wt-order-tv-0 grid__item-xl-fifth tab-reorder")

推荐阅读