r - 在亚马逊搜索中使用 R (rvest) 获取价格和产品
问题描述
我试图在任何亚马逊搜索中搜索产品及其价格,所以我正在使用 R 中的 rvest 库来做到这一点。
例如,对于此搜索:
我想提取所有产品名称及其价格。我尝试了以下操作:
library(rvest)
link='https://www.amazon.com.mx/s?k=gtx+1650+super&__mk_es_MX=%C3%85M%C3%85%C5%BD%C3%95%C3%91&ref=nb_sb_noss_2'
simple=read_html(link)
simple %>% html_nodes("[class='a-size-base-plus a-color-base a-text-normal']") %>% html_text()
使用 Chrome,类“ a-size-base-plus a-color-base a-text-normal ”是存储产品名称的位置。
该代码工作正常,我得到了所有产品名称。所以,我试图用这个来获得他们的价格:
simple %>% html_nodes("[class='a-offscreen']") %>% html_text()
使用 Chrome,“ a-offscreen ”类是存储价格的地方。
该代码将搜索中的每个价格都返回给我,但如果您已经看到搜索,则并非所有产品都有价格。因此,该代码向我返回了带有价格的产品,而我无法将产品与其价格相匹配。
有没有办法让它成为可能?也许可以只过滤那些具有“a-offset”类的产品并获得它们的价格?
谢谢。
解决方案
您需要先抓取商品的节点,然后使用每个节点抓取产品名称和价格。与此问题类似:RVEST 包似乎以随机顺序收集数据
推荐阅读
- uwp - UWP RichEditBox ITextRange 有图像
- scala - 如何向演员akka发送消息
- php - WooCommerce prevent checkout until post code entered
- python - TensorBoard 图形上的 x 轴错误
- owl - 将本体类与 xml 文档节点进行比较
- regex - 正则表达式 - 任何遵循规则的东西
- angular - Angular 6 和服务人员
- laravel - Laravel 5.6 中的“绑定”中间件有什么作用?
- javascript - 如何在 Angular js(如 j Query)中单击按钮时提交带有本机操作 URL 的表单
- python - txt 文件不包含结果?