Форум сайта python.su
0
Доброго времени суток. Не получается получить страницу через urlopen
from urllib import urlopen req = 'http://translate.google.com.ua/?hl=ru&tab=TT#' conn = urlopen(req).read() print conn
Офлайн
52
Посмотрите заголовки при запросе из браузера. Скорее всего нужно добавить что-нибудь вроде user-agent.
И искренне советую использовать requests вместо urllib.
Отредактировано fata1ex (Авг. 28, 2012 21:19:27)
Офлайн
14
fata1exИли grab, там искаропки рандомный юзерагент и поддержка прокси (главный недостаток request).
requests
Офлайн
20
>>> import urllib2 >>> opener = urllib2.build_opener() >>> res = opener.open('http://translate.google.com.ua/?hl=ru&tab=TT#') Traceback (most recent call last): File "<input>", line 1, in <module> ... HTTPError: HTTP Error 403: Forbidden >>> opener.addheaders = [('User-agent', 'I am not Python!!!')] >>> res = opener.open('http://translate.google.com.ua/?hl=ru&tab=TT#') >>> print res.read()[100:150] ><meta name=keywords content="ïåðåâåñòè, ïåðåâîäû,
>>> import requests >>> res = requests.get('http://translate.google.com.ua/?hl=ru&tab=TT#') >>> res.status_code 200 >>> res.cookies <<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, ... rest={}, rfc2109=False)]> >>> res.content[:50] '<!DOCTYPE html><html><head><meta content="text/htm' >>> res.encoding 'windows-1251' >>> res.history [] >>> res.raw.get_redirect_location() False
Офлайн
14
Совсем гуглоиды охренели, не ожидал от них такой тупости.
Офлайн
0
from grab import Grab g = Grab() g.go('http://translate.google.com.ua/?hl=ru&tab=TT#') print g.response.code print g.response.body
Офлайн
2
Получаю ошибку 403 мой клиент имеет недостаточно прав.Гугл отдает 403 даже за нестандартный User-Agent.
Офлайн
0
Получил используя httplib
h = httplib.HTTPConnection('translate.google.com.ua') h.request('GET',"/?hl=ru&tab=TT#") r = h.getresponse() print r.read() h.close()
h.request('GET',"/?hl=ru&tab=TT#/en/ru/egg") #перевод с англ. на рус. слова egg
Отредактировано asdf (Авг. 30, 2012 19:27:25)
Офлайн