CommonCrawl: Как найти конкретную веб-страницу?
Я использую CommonCrawl для восстановления страниц, которых я должен был достичь, но не достиг.
В моем понимании, Common Crawl Index предлагает доступ ко всем URL-адресам, хранящимся в Common Crawl. Таким образом, он должен дать мне ответ, если URL достигнут.
Простой скрипт загружает все индексы из доступных сканирований:
./cdx-index-client.py -p 4 -c CC-MAIN-2016-18 *.thesun.co.uk --fl url -d CC-MAIN-2016-18
./cdx-index-client.py -p 4 -c CC-MAIN-2016-07 *.thesun.co.uk --fl url -d CC-MAIN-2016-07
... and so on
После этого у меня есть 112 МБ данных и просто grep:
grep "50569" * -r
grep "Locals-tell-of-terror-shock" * -r
Страницы не там. Я что-то пропустил? Страница была опубликована в 2006 году и удалена в июне 2016 года. Поэтому я предполагаю, что CommonCrawl должен был их достичь?
Обновление: благодаря Себастьяну осталось две ссылки... Два URL:
- http://www.thesun.co.uk/sol/homepage/news/50569/Locals-tell-of-terror-shock.html
- http://www.thesun.co.uk/sol/homepage/news/54032/Sir-Ians-raid-apology.html
Они даже предложили "Инструмент поиска URL", который отвечает 502 - Bad Gateway...
1 ответ
Вы можете использовать AWS Athena для запроса общего индекса сканирования, такого как SQL, чтобы найти URL, а затем использовать смещение, длину и имя файла для чтения содержимого в вашем коде. Подробности смотрите здесь - http://commoncrawl.org/2018/03/index-to-warc-files-and-urls-in-columnar-format/
Последняя версия поиска по индексу CC предоставляет возможность поиска и получения результатов всех URL-адресов из конкретного tld. В вашем случае вы можете использовать http://index.commoncrawl.org/ а затем выбрать индекс по вашему выбору. Поиск по http://www.thesun.co.uk/*. Надеюсь, вы получите все URL-адреса из tld, а затем сможете отфильтровать URL-адреса по вашему выбору из json response.
Страницы AFAIK сканируются один раз и только один раз, поэтому искомые страницы могут находиться в любом архиве.
Я написал небольшое программное обеспечение, которое можно использовать для поиска во всех архивах одновременно (здесь также демонстрируется, как это сделать). Итак, в вашем случае я искал все архивы (с 2008 по 2019 годы) и набрал ваши URL в обычном редакторе сканирования, и нашел эти результаты для вашего первого URL (не смог найти второй, поэтому, я думаю, его нет в базе данных?):
FileName Offset Length
------------------------------------------------------------- ---------- --------
parse-output/segment/1346876860877/1346943319237_751.arc.gz 7374762 12162
crawl-002/2009/11/21/8/1258808591287_8.arc.gz 87621562 20028
crawl-002/2010/01/07/5/1262876334932_5.arc.gz 80863242 20075
Не уверен, почему есть три результата. Я предполагаю, что они повторно сканируют некоторые URL.
Если вы откроете любой из этих URL-адресов в приложении, которое я связал, вы сможете увидеть страницы в браузере (это настраиваемая схема, которая включает имя файла, смещение и длину для загрузки HTML из общей базы данных сканирования):
crawl://page.common/parse-output/segment/1346876860877/1346943319237_751.arc.gz?o=7374762&l=12162&u=http%3A%2F%2Fwww.thesun.co.uk%2Fsol%2Fhomepage%2Fnews%2F50569%2FLocals-tell-of-terror-shock.html
crawl://page.common/crawl-002/2009/11/21/8/1258808591287_8.arc.gz?o=87621562&l=20028&u=http%3A%2F%2Fwww.thesun.co.uk%2Fsol%2Fhomepage%2Fnews%2F50569%2FLocals-tell-of-terror-shock.html
crawl://page.common/crawl-002/2010/01/07/5/1262876334932_5.arc.gz?o=80863242&l=20075&u=http%3A%2F%2Fwww.thesun.co.uk%2Fsol%2Fhomepage%2Fnews%2F50569%2FLocals-tell-of-terror-shock.html