首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络抓取Yougov

网络抓取Yougov
EN

Stack Overflow用户
提问于 2022-10-25 15:35:45
回答 1查看 41关注 0票数 -1

我正在尝试使用软件包rvest和工具selectorgadget来擦拭yougov提供的最著名品牌的名称列表。该工具工作良好,但不幸的是,R只是刮前20个品牌名称,即使所有品牌都被选择小工具工具正确选择。

我使用的R代码如下:

代码语言:javascript
复制
# Packages 
library("rvest")
library("dplyr")

# Scraping yougov-Data 
yougov <- read_html("https://today.yougov.com/ratings/consumer/fame/brands/all")

yougov %>% 
  html_nodes("span:nth-child(3)") %>%  
  html_text()

我想问题与以下事实有关:默认情况下,yougov只显示前20个品牌。然而,当您展开其他品牌时,selectorgadget代码不会改变。

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 15:56:05

查看浏览器中的Developer ToolsNetwork选项卡,并再次浏览网站。您会注意到前20个品牌是在第一个HTML响应中加载的。然后,当您按下“加载更多”按钮,将发送一个新的请求,将加载20个以上的品牌。从现在开始,当您滚动页面时,会发送新的请求,加载越来越多的品牌。

您不能用rvest复制这种行为,除非网站提供了一个API,并且用API端点替换网站的URL以获取所有这些数据。

如果您想继续使用web抓取选项,您应该考虑RSelenium (或任何其他使浏览器自动化的R库)并执行de算法:

  • 将初始GET请求发送给网站URL
  • ,单击"Load More“按钮
  • 向下滚动需要多少次( 700多个品牌的列表)
  • get data

F 212

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74196651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档