Форум сайта python.su
3
Есть привередливая сетевая прога, от которой добиться чегото вразумительного удалось только отправив запрос при помощи голых сокетов, построив его именнно так, как показал Wireshark от оригинального клиента.
Соответственно принялась сырая “портянка”. Вобщемто вебстраница, но со своими плюшками типа “Transfer-Encoding: chunked”. Я по спецификациям все это разобрал, но было крайне неудобно…
Соответственно появилась идея: а нельзя ли как нибудь этот сырой ответ засунуть в Urllib или mechanize, чтоб они сами и “расчанкивали”, и заголовок с куками по полочкам разложили? Погуглив, ничего подобного не нашел…
Отредактировано Iskatel (Май 22, 2016 12:50:21)
Офлайн
1
Так?
#! /usr/bin/env python3 # -*- coding: utf-8 -*- import http.cookiejar import urllib.request MY_COOKIE = urllib.request.HTTPCookieProcessor(http.cookiejar.CookieJar(http.cookiejar.DefaultCookiePolicy(rfc2965=True,strict_ns_domain=http.cookiejar.DefaultCookiePolicy.DomainStrict,blocked_domains=["ads.net", ".ads.net"]))) a = 'http://www.dfm.ru/listen/' dfm_opener = urllib.request.build_opener(MY_COOKIE) dfm_opener.addheaders = [('Host', 'www.dfm.ru'), ('User-agent', 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:46.0) Gecko/20100101 Firefox/46.0')] with dfm_opener.open(a) as dfm_http: http_source = dfm_http.read().decode('utf-8-sig', errors='ignore') print(http_source)
Отредактировано ivsatel (Май 22, 2016 22:59:29)
Офлайн