Найти - Пользователи
Полная версия: Результат поиска количества страниц в Google
Начало » Python для новичков » Результат поиска количества страниц в Google
1 2
paraman
Коллеги, подскажите. Как я могу получать от гугла количество найденных страниц, а то мой способ затыкается на гугловской капче.
#!/usr/bin/python
# -*- coding: utf-8 -*-
from grab import Grab
import re
def google(name):
    g = Grab()
    host = 'http://google.ru/search?q=' + '%22' + name.replace(' ', '+') + '%22+' + '&sourceid=chrome&es_sm=93&ie=UTF-8'
    try:
        g.go(host)
    except:
        return None
    string = g.response.body
    parser = '<div id="resultStats">.* (.*?)<nobr>'
    resultat_search_len = re.findall(parser, string)
    if resultat_search_len != []:
        resultat_search_len = resultat_search_len[0].replace("\xc2\xa0","")
        return resultat_search_len
    else:
        return None
print google('python cisco')
Результатов: примерно 3 610

Спасибо, что уделили моему вопросу своё время.
sypper-pit
как вариант , чтоб затыков на капче не было , при каждом новом переходе проверяй наличие капчи и если таковая встречается выдавай её на экран или отправляй в антикапчу.
sypper-pit
как вариант попробуй http://sourceforge.net/p/zbrowsernight/discussion/markdown_syntax или качественно обрабатывай результаты grab, liburl итд
paraman
Спасибо, за ответ. Мне не количество посчитать найденных урлов нужно, а лишь получить число что находится под строкой поиска.
+ в скрипте капча есть, а в браузере её нет, чтобы регуляркой её перехватить и антикапче передать.
Есть ещё идеи или механизмы, чтобы посчитали мне количество найденных страниц?
Слов примерно 1000-1500 в сутки и нужно найти их количество найденных страниц.
bs0d
Могу подсказать, что надо смотреть на response.code. Если 503 - это капча
Делал на заказ недавно подобное приложение
sypper-pit
еще чтоб меньше проблем было , используй логин разработчика гугл при входе. он тоже капчи выбрасывает , только не так часто.
bs0d
и раз уж юзать граб, то лучше так
#!/usr/bin/python
# -*- coding: utf-8 -*-
from grab import Grab
def google(name):
    g = Grab()
    host = 'https://www.google.com/search?q=%s' % name.replace(' ', '+')
    try:
        g.go(host)
        return g.doc.select('//*[@id="resultStats"]').text().replace(',','')
    except:
        return None
print(google('python cisco'))
About 1850000 results (0.13 seconds)

Если запросы подразумевают кириллицу - quote из urllib
paraman
bs0d
Могу подсказать, что надо смотреть на response.code. Если 503 - это капчаДелал на заказ недавно подобное приложение
И как капчу обходить? Антикапча, прокси?
paraman
sypper-pit
еще чтоб меньше проблем было , используй логин разработчика гугл при входе. он тоже капчи выбрасывает , только не так часто.
То есть логиниться перед стартом? Что значит логин разработчика и как повысить уровень обычной учётки до уровня логин разработчика?

Всем спасибо за помощь.
bs0d
Что значит логин разработчика и как повысить уровень обычной учётки до уровня логин разработчика
Степень траста гугла при серч квери - одинаковая для всех.
С проксями будет та же беда, посему только антикапча.
Капчу будет показывать не при каждом запросе, посему затраты при 2000запросах в сутки - будут минимальными.
ИП забанить не должны, но на всякий случай делай какой-нибудь делей между запросами
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB