Найти - Пользователи
Полная версия: Как засунуть данные в Urllib или mechanize?
Начало » Python для новичков » Как засунуть данные в Urllib или mechanize?
1
Iskatel
Есть привередливая сетевая прога, от которой добиться чегото вразумительного удалось только отправив запрос при помощи голых сокетов, построив его именнно так, как показал Wireshark от оригинального клиента.

Соответственно принялась сырая “портянка”. Вобщемто вебстраница, но со своими плюшками типа “Transfer-Encoding: chunked”. Я по спецификациям все это разобрал, но было крайне неудобно…

Соответственно появилась идея: а нельзя ли как нибудь этот сырой ответ засунуть в Urllib или mechanize, чтоб они сами и “расчанкивали”, и заголовок с куками по полочкам разложили? Погуглив, ничего подобного не нашел…
ivsatel
Так?
#! /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)
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