Can';t网站与惠誉评级网站R

Can';t网站与惠誉评级网站R,r,web-scraping,R,Web Scraping,我正试图浏览惠誉评级网站,但直到现在我还没有得到我想要的:评级列表。当我用R搜索时,它返回网站的标题,在正文中,它从googleTagManager获得一个“iframe”,即“隐藏”重要的内容 网站: 返回: [1] <head>\n<title>Search - Fitch Ratings</title>\n<!-- headerScripts --><!-- --><meta http-equiv="Content-Type

我正试图浏览惠誉评级网站,但直到现在我还没有得到我想要的:评级列表。当我用R搜索时,它返回网站的标题,在正文中,它从googleTagManager获得一个“iframe”,即“隐藏”重要的内容

网站:

返回:

[1] <head>\n<title>Search - Fitch Ratings</title>\n<!-- headerScripts --><!-- --><meta http-equiv="Content-Type" content="text/html; chars ...
[2] <body id="search-results">\n        <div id="privacy-policy-tos-modal-container"></div>\n        <!-- Google Tag Manager (noscript) -- ...
_____________

代码如下

html_of_site <- read_html(url("https://www.fitchratings.com/site/search?content=research&filter=RESEARCH%20LANGUAGE%5EPortuguese%2BGEOGRAPHY%5EAmericas%2BREPORT%20TYPE%5EHeadlines%5ERating%20Action%20Commentary"))

html_of_site

html\u的网站简短回答:不要刮这个网站

长句回答:从技术上讲,这是可能的刮这个网站,但你需要你的代码表现得像一个人。这意味着你需要让惠誉集团的服务器相信你确实是一个人类访问者,而不是一个机器人

为此,您需要:

  • 发送浏览器将发送到站点的相同标题
  • 跟踪站点发送回您的任何cookie,并在后续请求中返回它们(如有必要)
  • 评估服务器发送回的任何脚本(以实际加载所需的数据)
我无法访问thefitchgroup.com的站点策略,但我假设它包含了关于机器人程序在站点上是什么和不允许做什么的条款。由于这家公司可能出售您试图获取的数据,您可能应该避免获取此网站


一般来说,在没有先阅读站点策略的情况下,不要刮取站点。如果您正在抓取的数据在没有抓取的情况下不是免费的,那么您可能不应该抓取它。

问题不在于网站主动阻止web抓取,而是动态内容。(顺便说一句,我也无法获得TOS,但我也认为不鼓励网络抓取;))当必须抓取动态内容时,可以通过运行Js的客户端或直接从网站的API获取数据。在本例中,可以在这里找到API,它接受并返回JSON数据。唯一的要求是请求应该有一个有效的referer。
html_of_site <- read_html(url("https://www.fitchratings.com/site/search?content=research&filter=RESEARCH%20LANGUAGE%5EPortuguese%2BGEOGRAPHY%5EAmericas%2BREPORT%20TYPE%5EHeadlines%5ERating%20Action%20Commentary"))

html_of_site