Как отслеживать ссылки в сети, используя Python

{title}

Сегодня я собираюсь показать вам, как перемещаться по ссылкам на странице с помощью Python ( очистка веб-страниц ), это может быть очень полезно для автоматического отслеживания содержимого на веб-сайте и не нужно делать это вручную. В программе, которую я привожу, каждая ссылка получается при чтении html, вы можете изменить программу для поиска определенного контента и показывать только те ссылки, в которых вы заинтересованы.

Вы также можете выполнить очистку веб-страниц, используя файл robots.txt или файлы Sitemap, которые есть на веб-сайтах.

примечание

Показанный код работает в Python 3.x, если вы хотите запустить его в версии 2.x, вам придется внести небольшие изменения.

Тогда я оставляю код:

 очередь на импорт import urllib.request import re from urllib.parse import urljoin def download (page): try: request = urllib.request.Request (page) html = urllib.request.urlopen (request) .read () print ("[ *] Загрузить OK >> ", страница) кроме: print ('[!] Ошибка загрузки', страница) return None return html def crawlLinks (page): searchLinks = re.compile ('] + href = ["'] ( . *?) ["']', re.IGNORECASE) queue = queue.Queue () queue.put (page) посещения = [страница] print (" Поиск ссылок в ", страница) while (queue.qsize ()> 0): html = download (queue.get ()), если html == нет: продолжить ссылки = searchLinks.findall (str (html)) для ссылки в ссылках: link = urljoin (page, str (link)) if (link не в гостях): cola.put (ссылка) visit.append (ссылка), если __name__ == "__main__": trackLinks ("http://www.solvetic.com") 
Первое, что мы делаем, это импортируем необходимые библиотеки для регулярных выражений (re), чтобы использовать очередь (queue), делать запросы и читать страницу (urllib.request) и для построения абсолютных URL-адресов из Базовый URL и другой URL (urljoin).

Код разделен на 2 функции
скачать

Это помогает нам загрузить HTML страницы. Это не нуждается в подробном объяснении, все, что он делает - это запрос на нужную страницу, читает ее html, если все идет хорошо, он показывает сообщение OK Download, и если он не показывает, что произошла ошибка (здесь мы могли бы показать информацию об ошибке), в конце возвращает чтение html или None.
rastrearEnlaces

Это основная функция и будет проходить через каждую ссылку. Давайте объясним это немного:

  • Мы создаем переменную с регулярным выражением, которое помогает нам находить ссылки в html.
  • Мы начинаем переменную типа очереди с начальной страницы, это поможет нам сохранить ссылки в «порядке», который мы обнаружили. Мы также инициируем переменную типа списка с именем посещения, которую мы будем использовать для сохранения ссылок при их посещении, это делается для того, чтобы избежать бесконечного цикла, представьте, что страница x ссылается на страницу y, а это в свою очередь на страницу x все время будем вставлять эти бесконечные ссылки.
  • Ядром функции является цикл while, который будет выполняться, пока в очереди есть ссылки, поэтому мы проверяем, что размер больше 0. В каждом проходе мы берем ссылку из очереди и отправляем ее в функцию загрузки, что html вернет нас, мы сразу же найдем ссылки и проверим, посетили ли мы его, если нет, добавим его в очередь и в список.

примечание

Может показаться, что список остался, но из очереди мы будем удалять и удалять ссылки, поэтому проверка будет неправильной, возможно, ссылка, которую мы посетили некоторое время назад, и ее больше нет в очереди, но она будет в список

Последняя часть кода, уже находящаяся вне функций, будет отвечать за выполнение кода. На следующем изображении вы можете увидеть снимок бегущего кода, отслеживая решение.

{title}

Если вы хотите, чтобы вы могли помочь себе с библиотекой для Python, которая называется BeautifulSoup, с ней вам будет очень легко обращаться, я рекомендую это сделать.

Если вы хотите код, вот почтовый индекс:

RecorrerEnlaces.zip 646 байт 281 скачиваний

  • 0

СТАТЬЯ ПО ТЕМЕ Как скрыть или показать экран Android уведомлений WhatsApp

..