首页 > 解决方案 > 如何自动下载网页 HTML?拒绝访问

问题描述

curl我已经在 Mac 命令行 ( , wget) 和 R ( rvest, download, ) 中尝试了各种实用程序来获得Chrome 中RCurl的等价物。File > Save Page As ... > Webpage, Complete所有这些实用程序都做了一些事情,但它们都不会产生与 Chrome 中的菜单驱动方法相同的结果,它确实从网页中捕获了我需要的所有信息。我需要为很多很多网页下载和解析 HTML。

我不确定我要下载的网页是否有什么特别之处,或者我只是没有使用正确的实用程序。我经常被拒绝访问。

标签: htmlrshellweb-scraping

解决方案


事实证明,我试图抓取的网站在许多已知的类似抓取工具的方法下拒绝访问。感谢 dash-o 将我指向无头 Chrome。使用无头,您可以自动下载包含所有相关信息的 DOM。但是,可以通过用户代理检测到 headless。您所要做的就是将标准浏览器用户代理作为参数传递给无头 Chrome 以欺骗标准浏览器:

chrome --headless --dump-dom --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36" https:// ...

有关更多详细信息,请参阅这些:
https ://intoli.com/blog/making-chrome-headless-undetectable/ https://developers.google.com/web/updates/2017/04/headless-chrome#printing_the_dom


推荐阅读