python - 在 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 在此处检查代码
非常感谢任何帮助!谢谢 (-:
解决方案
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")
推荐阅读
- docker - 为独立容器创建覆盖网络时出错
- javascript - 使用多个组件重用导航栏组件
- ios - Flutter video_player 插件使人像相机视频静音
- python - Pygame 创建无限数量的敌人
- c# - Post 方法中的映射无法正常工作
- javascript - 点击浏览器后退按钮时如何阻止 React 组件在加载时重新获取数据
- flutter - DateTime 类参数应该是 const 但 DateTime 不支持这个
- android - 如何从 Firestore 云或实时数据库中检索数据,如自定义排序
- javascript - 如何使用 JQuery 实现星级评分
- r - 表中的错误:所有参数必须具有相同的长度