Найти - Пользователи
Полная версия: urlopen forbidden
Начало » Python для новичков » urlopen forbidden
1
asdf
Доброго времени суток. Не получается получить страницу через urlopen
from urllib import urlopen
req = 'http://translate.google.com.ua/?hl=ru&tab=TT#'
conn = urlopen(req).read()
print conn
Получаю ошибку 403 мой клиент имеет недостаточно прав.
Вставляя этот url в броузер страница отображается. Таким же методом получал страницу www.google.com, тоесть код правильный. Как правильно написать url?
fata1ex
Посмотрите заголовки при запросе из браузера. Скорее всего нужно добавить что-нибудь вроде user-agent.

И искренне советую использовать requests вместо urllib.
odnochlen
fata1ex
requests
Или grab, там искаропки рандомный юзерагент и поддержка прокси (главный недостаток request).
EBFE
>>> 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
odnochlen
Совсем гуглоиды охренели, не ожидал от них такой тупости.
Seganapa
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
mironich
Получаю ошибку 403 мой клиент имеет недостаточно прав.
Гугл отдает 403 даже за нестандартный User-Agent.
asdf
Получил используя 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
То сервер присылает туже стараницу что и выше. Если ссылку вставить в броузер - отображается нужная страница.
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