Форум сайта python.su
0
Здравствуйте!
Нужно получить все url при редиректе.
Нашел human_curl , в описании есть что-то очень похожее:
…
import human_curl as requests
r = requests.get('http://h.wrttn.me/redirect/4', allow_redirects=True)
r.status_code
200
print(r.history)
['http://h.wrttn.me/redirect/3', 'http://h.wrttn.me/redirect/2',
'http://h.wrttn.me/redirect/1', 'http://h.wrttn.me/redirect/end']
…
но при попытке установить human_curl (Windows 7, Python2.7) выдает ошибку:
“NameError: global name ‘options’ is not defined
—————————————-
Command python setup.py egg_info failed with error code 1 in c: …. \pycurl2 ”
В программировании новичок, Python осваиваю вместе с Selenium WebDriver.
Буду очень признателен за помощь с установкой human_curl или за альтернативный вариант получения “redirect history”.
Отредактировано TimmonSPB (Янв. 17, 2013 17:08:01)
Офлайн
173
API human_curl срисован с http://python-requests.org/
Попробуйте именно ее.
Офлайн
0
я пробовал, получается например вот такое:
…
r.history
(<Response 302>, <Response 302>)
а как получить именно url не могу сообразить 
Отредактировано TimmonSPB (Янв. 18, 2013 09:33:02)
Офлайн
173
http://docs.python-requests.org/en/latest/api/#requests.Response
for resp in r.history: print(r.url)
Офлайн
0
Спасибо! Практически то, что нужно. Хотя срабатывает не всегда
Возможно, что обращение воспринимается как бот и редирект не срабатывает?
Офлайн
0
TimmonSPB
попробуйте задать user-agent “человеческий”, возьмите любой понравившийся отсюда: http://www.useragentstring.com/pages/useragentstring.php
Офлайн
0
А как быть, если редирект делается с помощью javascript ?
Офлайн