Извлечь результаты поиска Google

Я хотел бы периодически проверять, какие субдомены перечислены Google.

Чтобы получить список поддоменов, я набираю «site: example.com» в окне поиска Google – здесь перечислены все результаты поддомены (более 20 страниц для нашего домена).

Каков наилучший способ извлечь только URL-адрес адресов, возвращаемых поиском 'site: example.com'?

Я подумывал написать небольшой скрипт python, который будет выполнять вышеуказанный поиск и повторно использовать URL-адреса из результатов поиска (повторить на всех страницах результатов). Это хорошее начало? Может ли быть лучшая методология?

Приветствия.

2 Solutions collect form web for “Извлечь результаты поиска Google”

Regex – плохая идея для разбора HTML. Это загадочно читать и полагаться на хорошо сформированный HTML.

Попробуйте BeautifulSoup для Python. Вот пример скрипта, который возвращает URL-адреса с первых 10 страниц сайта: domain.com Google query.

import sys # Used to add the BeautifulSoup folder the import path import urllib2 # Used to read the html document if __name__ == "__main__": ### Import Beautiful Soup ### Here, I have the BeautifulSoup folder in the level of this Python script ### So I need to tell Python where to look. sys.path.append("./BeautifulSoup") from BeautifulSoup import BeautifulSoup ### Create opener with Google-friendly user agent opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'Mozilla/5.0')] ### Open page & generate soup ### the "start" variable will be used to iterate through 10 pages. for start in range(0,10): url = "http://www.google.com/search?q=site:stackoverflow.com&start=" + str(start*10) page = opener.open(url) soup = BeautifulSoup(page) ### Parse and find ### Looks like google contains URLs in <cite> tags. ### So for each cite tag on each page (10), print its contents (url) for cite in soup.findAll('cite'): print cite.text 

Вывод:

 stackoverflow.com/ stackoverflow.com/questions stackoverflow.com/unanswered stackoverflow.com/users meta.stackoverflow.com/ blog.stackoverflow.com/ chat.meta.stackoverflow.com/ ... 

Конечно, вы можете добавить каждый результат в список, чтобы вы могли его проанализировать для поддоменов. Я только что попал в Python и выскальзывал несколько дней назад, но это должно заставить вас начать.

API пользовательского поиска Google может предоставлять результаты в формате XML ATOM

Начало работы с Google Custom Search

  • Добавить значения ключей и отсортировать их по вступлению ключей в список словарей в Python
  • Python: исправлено исправление длины Regex?
  • Исходная строка и регулярное выражение в Python
  • Regex для соответствия Domain.CCTLD
  • Django url pattern regex, чтобы передать электронное письмо в качестве параметра в URL-адресе
  • TypeError: элемент последовательности 1: ожидается байтоподобный объект, str найден
  • Захват названных групп в regex с re.findall
  • Анализ XML в Python с регулярным выражением
  • Очистить уродливый код HTML WYSIWYG? Утилита Python или * nix
  • Как текстовое найти импортированное имя в модуле
  • Может ли pexpect сказать, чтобы игнорировать шаблон или сигнал?
  •  
    Interesting Posts for Van-Lav

    Flask-SQLAlchemy: Тип столбца фото

    Простой способ сплавления нескольких близких точек?

    Python 2.7.3 + OpenCV 2.4 после поворота не подходит Изображение

    Возможно ли многопроцессорная функция, возвращающая что-то в Python?

    Используя Django, зачем REMOTE_ADDR возвращает 127.0.0.1 на веб-сервере?

    Применение UDF в GroupedData в PySpark (с действующим примером python)

    Найдите 4 значения в размере окна 6, которые соответствуют критериям, затем добавьте в список, пока 3 не соответствуют критериям, которые не включают последние 3 -> Повторите следующее окно. питон

    Видеоэлемент HTML5 не доступен при использовании сервера разработки Django

    Как сделать unindent с помощью IDLE (Python gui)

    Преобразование html в изображение?

    Перспективная коррекция в OpenCV с использованием python

    Импорт сценария из родительского каталога

    Как удалить пробел из конца строки в Python?

    Где модуль __builtin__ в Python3? Почему это было переименовано?

    Как запустить Klein с скрученными?

    Python - лучший язык программирования в мире.