使用XPath爬取Etsy商品页面链接及描述的技术问题咨询
解决Etsy商品链接与描述爬取的XPath问题
我来帮你搞定这个Etsy爬取的问题!针对你用Chrome Scraper插件遇到的XPath定位问题,我分两部分给你拆解:
一、获取商品链接的正确XPath设置
Etsy的商品页面结构虽偶尔调整,但核心的商品链接规律很好抓:
- 定位思路:商品详情页的链接都以
/listing/开头,且通常嵌套在商品卡片的标题区域里。 - 推荐XPath:
- 精准版(匹配商品标题的链接):
//a[starts-with(@href, '/listing/') and contains(@class, 'v2-listing-card__title')] - 通用版(匹配所有商品详情链接):
//a[starts-with(@href, '/listing/')]
- 精准版(匹配商品标题的链接):
- 验证方法:打开Chrome DevTools的Console面板,输入
$x("你的XPath"),回车后看返回的节点数量是否和页面显示的商品数一致——一致就说明定位正确。 - Scraper插件设置:
- 在Scraper的"Selector"区域,选择类型为
Link - 粘贴上面的XPath,字段名设为
Product Link
- 在Scraper的"Selector"区域,选择类型为
二、提取商品详情页的描述
进入商品链接后,描述的XPath也有稳定的定位方式:
- 推荐XPath:
- 抓取纯文本内容:
//div[@data-testid='listing-page-description']//text() - 抓取带格式的完整内容:
//div[@data-testid='listing-page-description']
- 抓取纯文本内容:
- Scraper插件设置:
- 在主页面的Scraper配置里,勾选"Follow links"选项
- 切换到"Sub-page"标签,添加新字段,命名为
Product Description - 粘贴描述XPath,类型选择
Text或者HTML(根据你需要的格式)
额外提示
- Etsy会动态加载商品,你需要先手动滚动页面到底部,让所有商品加载完成后再启动Scraper,避免漏抓
- 如果XPath突然失效,大概率是页面class名更新了,你可以右键目标区域选择"Inspect",再用DevTools右键菜单"Copy > Copy XPath"获取最新路径,去掉自动生成的冗余索引(比如
[1])会更通用
内容的提问来源于stack exchange,提问作者sam9750
相关产品推荐
相关产品推荐

