Форум сайта python.su
1
Коллеги, подскажите. Как я могу получать от гугла количество найденных страниц, а то мой способ затыкается на гугловской капче.
#!/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
Офлайн
6
как вариант , чтоб затыков на капче не было , при каждом новом переходе проверяй наличие капчи и если таковая встречается выдавай её на экран или отправляй в антикапчу.
Офлайн
6
как вариант попробуй http://sourceforge.net/p/zbrowsernight/discussion/markdown_syntax или качественно обрабатывай результаты grab, liburl итд
Офлайн
1
Спасибо, за ответ. Мне не количество посчитать найденных урлов нужно, а лишь получить число что находится под строкой поиска.
+ в скрипте капча есть, а в браузере её нет, чтобы регуляркой её перехватить и антикапче передать.
Есть ещё идеи или механизмы, чтобы посчитали мне количество найденных страниц?
Слов примерно 1000-1500 в сутки и нужно найти их количество найденных страниц.
Офлайн
2
Могу подсказать, что надо смотреть на response.code. Если 503 - это капча
Делал на заказ недавно подобное приложение
Офлайн
6
еще чтоб меньше проблем было , используй логин разработчика гугл при входе. он тоже капчи выбрасывает , только не так часто.
Офлайн
2
и раз уж юзать граб, то лучше так
#!/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'))
Отредактировано bs0d (Окт. 11, 2014 18:11:21)
Офлайн
1
bs0dИ как капчу обходить? Антикапча, прокси?
Могу подсказать, что надо смотреть на response.code. Если 503 - это капчаДелал на заказ недавно подобное приложение
Офлайн
1
sypper-pitТо есть логиниться перед стартом? Что значит логин разработчика и как повысить уровень обычной учётки до уровня логин разработчика?
еще чтоб меньше проблем было , используй логин разработчика гугл при входе. он тоже капчи выбрасывает , только не так часто.
Офлайн
2
Что значит логин разработчика и как повысить уровень обычной учётки до уровня логин разработчикаСтепень траста гугла при серч квери - одинаковая для всех.
Офлайн