我用Rvest做过几次网页抓取。但是我没有尝试过从请求中获取字符(空)的网页抓取。这是网站阻止我从他们的网站抓取数据的迹象吗?或者这是某种类型的Javascript/JSON查询?
library(rvest)
library(robotstxt)
##checking the website Rvest and Robotstxt
paths_allowed("https://www.ratemyprofessors.com/search/teachers?query=*&sid=668htm")
njit <- read_html("https://www.ratemyprofessors.com/search/teachers?query=*&sid=668htm")
##Checking file type
class(njit)
##extracting professor names
prof <- njit %>%
xml_nodes(".cJdVEK") %>%
html_text2()
1条答案
按热度按时间gab6jxml1#
我假设你想把所有与新泽西理工学院有关的教授都拉出来?我在这个链接上刮了一页:https://www.ratemyprofessors.com/search/teachers?query=*&sid=668(原始链接减去末尾的“htm”)。
由于页面使用JavaScript返回内容,
rvest
看到的html与用户看到的html不同。此外,当用户向下滚动时,结果会动态加载。下面是一种使用RSelenium自动Web浏览器继续滚动的方法,直到找到该大学的所有1,000名左右的教授:结果
注意事项:
1.这将是缓慢的,因为你必须等待页面重新加载。
1.您可能希望进一步减慢速度,以避免网站将您作为机器人阻止。您还可以使用RSelenium添加随机鼠标和按键移动,以降低被阻止的风险。