Как автоматизировать загрузку веб-страницы HTML? В доступе отказано - PullRequest
0 голосов
/ 06 августа 2020

Я пробовал различные утилиты в командной строке Ma c (curl, wget) и в R (rvest, download, RCurl), чтобы получить эквивалент File > Save Page As ... > Webpage, Complete дюйм Chrome. Все эти утилиты делают что-то , но ни одна из них не дает таких же результатов, как подход на основе меню в Chrome, который действительно захватывает всю необходимую мне информацию с веб-страницы. Мне нужно загрузить и проанализировать HTML для многих-многих веб-страниц.

Я не уверен, есть ли что-то особенное в веб-страницах, которые я пытаюсь загрузить, или я просто не работаю с правильными коммунальными услугами. Часто я получаю отказ в доступе.

1 Ответ

0 голосов
/ 07 августа 2020

Оказывается, веб-сайт, который я пытаюсь очистить, запрещает доступ с помощью ряда известных методов, подобных скребку. Спасибо da sh -o за то, что он указал мне на Chrome без головы. Используя headless, вы можете автоматизировать загрузку 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

...