Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import requests
- import re
- http = requests.Session()
- http.headers = {'User-Agent': 'Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (J2ME/23.377; U; en) Presto/2.5.25 Version/10.54'}
- def query(q, page=0):
- """ Поиск ссылок """
- url = u'http://google.com/search?hl=en&btnG=Search&q=%s&start=%s' % (q, page * 10)
- response = http.get(url)
- found = reg(response.text, '<a href="/url\?q=(.*?)&.*?>(.*?)</a>')
- goo = []
- for i in found:
- goo += [{
- 'url': i[0],
- 'name': clear_html_tags(i[1]),
- }]
- return goo
- def images(q, page=0):
- """ Поиск картинок """
- url = u'http://google.com/search?hl=en&prmd=ivns&source=lnms&tbm=isch&sa=X&q=%s&start=%s' % (q, page * 10)
- response = http.get(url)
- found = reg(response.text, '<a class="image" href="/imgres\?imgurl=(.*?)&.*?h=(.*?)&w=(.*?)&')
- goo = []
- for i in found:
- goo += [{
- 'url': i[0],
- 'height': int(i[1]),
- 'wight': int(i[2]),
- }]
- return goo
- def pages(f, q, pages=1):
- """ Получение нескольких страниц. Пример: google.pages(google.images, 'kyubey', 3) """
- goo = []
- for i in xrange(pages):
- response = f(q, page=i * 10)
- if response:
- goo += response
- else:
- break
- return goo
- def reg(string, reg):
- """ Поиск по регулярке """
- reg = re.compile(reg, re.IGNORECASE | re.DOTALL)
- reg = reg.findall(string)
- return reg
- def clear_html_tags(text):
- tags_regs = [r'<([a-z])>', r'</([a-z])>']
- for i in tags_regs:
- text = re.sub(i, '', text)
- return text
- if __name__ == '__main__':
- goo = query("Python")
- for i in goo:
- print '%s - %s' % (i['url'], i['name'])
Advertisement
Add Comment
Please, Sign In to add comment