Извлечь результаты поиска 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

  • Поддерживает ли Ruby условные регулярные выражения
  • Как вы переводите эту идиому регулярного выражения из Perl в Python?
  • beautifulsoup .get_text () недостаточно специфичен для моего разбора HTML
  • Сгенерируйте строку, которая соответствует RegEx в Python
  • Можно ли использовать re2 из Python?
  • Python - заменить символ non-ascii в строке (»)
  • Regexp находит самый длинный общий префикс двух строк
  • Как извлечь символьную ngram из предложений? - python
  • Python - лучший язык программирования в мире.