Как создать краулер на Python
Короткие байты: Веб-искатель — это программа, которая просматривает Интернет (Всемирную паутину) заранее определенным, настраиваемым и автоматизированным образом и выполняет определенные действия над просканированным контентом. Поисковые системы, такие как Google и Yahoo, используют пауков как средство предоставления актуальных данных.
Webhose.io, компания, предоставляющая прямой доступ к оперативным данным с сотен тысяч форумов, новостей и блогов, 12 августа 2015 года опубликовала статьи, описывающие крошечный многопоточный веб-сканер, написанный на Python. Этот веб-сканер Python способен сканировать всю сеть за вас. Ран Гева, автор этого крошечного веб-сканера Python, говорит, что:
Я написал как «Грязно», «Ненадежно», «Плохо», «Не очень хорошо». Я говорю, что он выполняет свою работу и загружает тысячи страниц с нескольких страниц за считанные часы. Никакой настройки не требуется, никакого внешнего импорта, просто запустите следующий код Python с исходным сайтом и расслабьтесь (или займитесь чем-нибудь другим, потому что это может занять несколько часов или дней, в зависимости от того, сколько данных вам нужно).
Многопоточный сканер на основе Python довольно прост и очень быстр. Он способен обнаруживать и устранять повторяющиеся ссылки, а также сохранять как источник, так и ссылку, которые позже можно использовать при поиске входящих и исходящих ссылок для расчета рейтинга страницы. Это совершенно бесплатно, код указан ниже:
import sys, thread, Queue, re, urllib, urlparse, time, os, sys dupcheck = set() q = Queue.Queue(100) q.put(sys.argv[1]) def очередиURLs(html, origLink): для URL-адреса в re.findall(''' 99999: dupcheck.clear() q.put(link) def getHTML(link): попробуйте: html = urllib.urlopen(link).read( ) open(str(time.time()) + “.html”, “w”).write(“” % ссылка + “\n” + html) очередиURLs(html, ссылка) кроме (KeyboardInterrupt, SystemExit): поднять кроме исключения: передать, пока True: thread.start_new_thread( getHTML, (q.get(),)) time.sleep(0.5)
Сохраните приведенный выше код под каким-нибудь именем, например «myPythonCrawler.py». Чтобы начать сканирование любого веб-сайта, просто введите:
$ python myPythonCrawler.py
Расслабьтесь и наслаждайтесь этим веб-сканером на Python. Он загрузит для вас весь сайт.
Станьте профессионалом в Python с помощью этих курсов
Вам нравится этот простой, многопоточный веб-сканер на основе Python? Дайте нам знать в комментариях.
Читайте также: Как создать загрузочную флешку без какого-либо программного обеспечения в Windows 10