Home

Tags

Сграбить результат запроса поисковика

2010-05-26 urllib

Пример как сграбить и распарсить результат запроса поисковика nigma.ru

# coding: utf8

import urllib2
import urllib
import re

def doSearch(query,site):
    prms = 'http://www.nigma.ru/index.php?t=web&yn=1&gl=1&rm=1&ms=1&yh=1&av=1&ap=1&nm=1&lang=all&srt=0&dp=on&sf=1&%s+site:%s' % (urllib.urlencode({'s':query}), site)
    req = urllib2.Request(prms, headers={ 'Cookie': 'docs_on_page=50' })
    buf = urllib2.urlopen(req).read()

    i = buf.find('<div id="results">')
    if i: buf = buf[i:]

    return re.findall(r'<div class="snippet_title">.*?href="(.*?)".*?">(.*?)</a></div>\s*<div class="snippet_text">(.*?)</div>', buf)

for x in doSearch('Запуск', 'www.py-my.ru'):
    print ' | '.join(x)
Функция doSearch Возвращает "таблицу" с колонками: "Адресная строка", "Заголовок", "Часть контента"
Результат
http://www.py-my.ru/page/40 | <b>Запуск</b> программ из Python - myBoard | <b>Запуск</b> программ из Python ..
http://www.py-my.ru/page/90 | <b>Запуск</b> полного процессинга OLAP из python - myBoard | <b>Запуск</b> полного процессинга OLAP из python...