Форум сайта python.su
o7412369815963Большое спасибо!
вот http://www.python-requests.org/en/latest/user/quickstart/#custom-headersсписок параметров возмите у себя из браузера:
Офлайн
>>> import urllib.request >>> >>> headers = { ... 'Host': 'my-svadba.ru', ... 'User-Agent': 'Mozilla/5.0 (X11; Linux i686; rv:27.0) Gecko/20100101 Firefox/27.0', ... 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', ... 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3', ... #'Accept-Encoding': 'gzip, deflate', ... #'DNT': '1', ... #'Connection': 'keep-alive' ... } >>> >>> r = urllib.request.Request( ... 'http://my-svadba.ru/company/item/59109/#3|2014', ... headers=headers ... ) >>> >>> data = urllib.request.urlopen(r) >>> html = data.read().decode(data.headers.get_content_charset() or 'utf-8') >>> >>> print(html[:100], html[-200:], sep='\n\t***\n') <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/ *** Днепропетровск <input type="hidden" value="126" /> </a> </dd> <dd> >>>
Отредактировано py.user.next (Март 3, 2014 22:14:39)
Офлайн
все равно не работатет. я ему даже куки скормил, не работает.
py.user.next Ваш код тоже выдает не до конца текст, как и мой.
import urllib.request headers = { 'Host': 'my-svadba.ru', 'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0', 'Accept':'Language: ru-ru,ru;q=0.8,uk;q=0.6,en-us;q=0.4,en;q=0.2', 'Accept':'Encoding: gzip, deflate', 'Cookie': '_ym_visorc_157614=w; PHPSESSID=72pm17q9m55qt5d88kca1ebnn1', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', } r = urllib.request.Request('http://my-svadba.ru/company/item/59109/#3|2014',headers=headers) data = urllib.request.urlopen(r) html = data.read()#.decode(data.headers.get_content_charset() or 'utf-8') #print(html) print(html[:100], html[-200:], sep='\n\t***\n')
Офлайн
это из-за
Connection: close
python.org. urllib.request
urllib.request module uses HTTP/1.1 and includes Connection:close header in its HTTP requests.
Отредактировано py.user.next (Март 4, 2014 04:32:12)
Офлайн
Победа! Victory!
Заработатло!
o7412369815963, Ваш совет помог, большое спасибо!
py.user.next, спасибо за инфу!
Всем остальным тоже огромное спасибо!
Работает даже без отправки заголовков, так что py.user.next, Ваше замечание верно на все 200%
привожу скрипт и его вывод. юху, круто, тему можно закрывать.
скрипт:
import urllib.request import requests import json url = 'http://my-svadba.ru/company/item/59109' payload = {'some': 'data'} headers = { 'Host': 'my-svadba.ru', 'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0', 'Accept':'Language: ru-ru,ru;q=0.8,uk;q=0.6,en-us;q=0.4,en;q=0.2', 'Accept':'Encoding: gzip, deflate', 'Cookie': '_ym_visorc_157614=w; PHPSESSID=72pm17q9m55qt5d88kca1ebnn1', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', } r = requests.get(url, data=json.dumps(payload), headers=headers) print(r.content.decode('utf-8'))
python -u 544544546.py Process started >>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- Powered by LIMB | http://www.limb-project.com/ --> <!-- Designed by BIT | http://www.bit-creative.com/ --> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> <title> Сергей и Алина Казины — фото и видео Пенза Портфолио </title> <meta name="description" content="Скидки на бронирование фото и видео до 1.04. В мае и июне фотокнига в подарок"> <meta name="keywords" content="Фотографы, Студийная фотосъемка, Видеографы, Пенза, Саранск, Самара, Саратов, Москва, Тольятти, Сергей и Алина Казины — фото и видео"> <link rel="stylesheet" type="text/css" href="/styles/main.css?2013-07-08" /> <link rel="stylesheet" type="text/css" href="/styles/jquery-ui.css?2013-07-08" /> <link rel="stylesheet" type="text/css" href="/styles/fancybox.css?2013-07-08" /> <!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="/styles/ie.css?2013-07-08" /><![endif]--> <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="/styles/ie6.css?2013-07-08" /><![endif]--> ------*****тут вырезанно мною****----- </script> <!-- Yandex.Metrika counter --> <div style="display:none;"><script type="text/javascript"> (function(w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter157614 = new Ya.Metrika({id:157614, enableAll: true, webvisor:true}); } catch(e) { } }); })(window, "yandex_metrika_callbacks"); </script></div> <script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript" defer="defer"></script> <noscript><div><img src="//mc.yandex.ru/watch/157614" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> </body> </html> <<< Process finished. (Exit code 0) ================ READY ================
Офлайн