Есть ли команда CLI для подсчета вхождения определенной строки на веб-странице?

Я хочу найти количество раз, когда веб-страница использовала определенное слово или фразу в разное время за последние несколько лет; и я хотел бы сделать это, используя страницу результатов archive.org как источник страницы с течением времени.

Я достаточно уверен, что есть какой-то инструмент, который может выполнять поиск по сайту на веб-странице , и я знаю, что у archive.org все страницы доступны ...

, но это насколько я понимаю. Я достаточно разбираюсь в некоторых быстрых и грязных сценариях bash и небольшом питоне, но у меня нет опыта прямого доступа к сети. Интернет. Без разницы. (См. Уровень моего невежества?!)

Я предполагаю, что я хочу знать: что было бы хорошим инструментом CLI для подсчета слов любого URL-адреса, который ему передан, и как мне пойти о написании скрипта, который мог бы вернуть URL-адрес ~ 750 страниц с последовательным датированием? Или это возможно?

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

archive.org имеет несколько сейвов в день, а не всегда одно и то же число. Поэтому я хотел бы знать, есть ли способ опросить страницу «результаты», следить за каждым URL-адресом и проверять дату создания и сохранять каждый URL-адрес, который возвращает новую дату в некоторый текстовый файл. Это позволило бы мне создать список веб-страниц с последовательным датированием для шага 2 ...

Если такой инструмент существует, который может искать URL-адрес, сделайте grep (или аналогичный) для некоторого текста b, и вернуть число b, которое он находит, запустить и передать вывод в текстовый файл. Я использую несколько инструментов cli, которые могут выполнять такую ​​гимнастику на локальном диске, но я надеялся, что будет программа, которая может просто сделать:

для xurl в файле somefile.txt; do wordcount -a = $ xurl -b = " b " >> temp.txt; сделано

0
задан 20 October 2017 в 18:48

4 ответа

вы можете скручивать URL-адрес и трассировать его для grep, как это

curl --silent https://www.google.cl | grep -c -i google

Также обратите внимание на -i, это поиск без учета регистра.

Чтобы сделать это в пакет из файла (один URL-адрес)

wordToSearch='google' # while read url; do curl --silent "${url}" | grep -c -i "${wordToSearch}" >> temp.txt done < fileWithUrl.txt
1
ответ дан 18 July 2018 в 04:58

Я не вижу, как будет выглядеть ваш вкладка в вашу программу или страницу результатов, которую вы упомянули, но вот как я попытаюсь решить эту проблему:

curl позволяет скачать исходный код веб-страницы. Таким образом, curl archive.org/whatever получает страницу результатов в виде обычного текста.

Вы можете передать это в grep и искать привязывающие теги HTML (<a href="location.of/the-linked-page">a description of the link</a>). Вот вызов grep, который может служить отправной точкой: | grep -o '<a href.*</a> (-o печатает только согласованные части строки. Возможно, вам потребуется заменить пространство между a и href классом space или эксперимент с неживыми формами *, в зависимости от вашего ввода.) Вы также получите все ссылки на этой странице, поэтому для удаления навигационных ссылок, объявлений и т. д. необходимы другие (или несколько) раундов (ов) .

Затем, используя sed, вы удаляете «помехи», такие как <a>, href и т. д., чтобы получить только чистую ссылку. Затем вы можете подать вывод в цикл for, который снова использует завиток, чтобы сохранить содержимое этих ссылок. На вывести все , наконец, вы можете выполнить анализ вашего слова, используя grep -c, как указывает vidarlo.

1
ответ дан 18 July 2018 в 04:58

вы можете скручивать URL-адрес и трассировать его для grep, как это

curl --silent https://www.google.cl | grep -c -i google

Также обратите внимание на -i, это поиск без учета регистра.

Чтобы сделать это в пакет из файла (один URL-адрес)

wordToSearch='google' # while read url; do curl --silent "${url}" | grep -c -i "${wordToSearch}" >> temp.txt done < fileWithUrl.txt
1
ответ дан 24 July 2018 в 18:12

Я не вижу, как будет выглядеть ваш вкладка в вашу программу или страницу результатов, которую вы упомянули, но вот как я попытаюсь решить эту проблему:

curl позволяет скачать исходный код веб-страницы. Таким образом, curl archive.org/whatever получает страницу результатов в виде обычного текста.

Вы можете передать это в grep и искать привязывающие теги HTML (<a href="location.of/the-linked-page">a description of the link</a>). Вот вызов grep, который может служить отправной точкой: | grep -o '<a href.*</a> (-o печатает только согласованные части строки. Возможно, вам потребуется заменить пространство между a и href классом space или эксперимент с неживыми формами *, в зависимости от вашего ввода.) Вы также получите все ссылки на этой странице, поэтому для удаления навигационных ссылок, объявлений и т. д. необходимы другие (или несколько) раундов (ов) .

Затем, используя sed, вы удаляете «помехи», такие как <a>, href и т. д., чтобы получить только чистую ссылку. Затем вы можете подать вывод в цикл for, который снова использует завиток, чтобы сохранить содержимое этих ссылок. На вывести все , наконец, вы можете выполнить анализ вашего слова, используя grep -c, как указывает vidarlo.

1
ответ дан 24 July 2018 в 18:12

Другие вопросы по тегам:

Похожие вопросы: