Python 아 날로 그 앱 접근

2749 단어 튜 토리 얼
웹 압축 기술 은 주로 두 가지 gzip 와 deflate 이다.
DEFLATE 는 특허 가 없 는 압축 알고리즘 으로 무 손실 데이터 압축 을 실현 할 수 있 고 많은 오픈 소스 의 실현 알고리즘 이 있다.GZIP 은 DEFLATE 를 사용 하여 데 이 터 를 압축 하 는 또 다른 압축 라 이브 러 리 입 니 다.
현재 gzip 압축 을 보편적으로 지원 합 니 다. Deflate 는 오래된 웹 페이지 압축 일 뿐 입 니 다.
if __name__ == "__main__":     url='http://www.qq.com/'     req = request.Request(url)     response = request.urlopen(req, timeout=120)     html = response.read()     encoding = response.info().get('Content-Encoding')     print(encoding)     if encoding == 'gzip':         html = zlib.decompress(html, 16+zlib.MAX_WBITS)     elif encoding == 'deflate':         try:             html = zlib.decompress(html, -zlib.MAX_WBITS)         except zlib.error:             html = zlib.decompress(html)
    charset = chardet.detect(html)["encoding"]     print(charset)     #print(html)     print(html.decode(charset,'ignore'))  
import urllib.request
import zlib

loginUrl = 'https://api.nfapp.southcn.com/nanfang_if/getArticleContent?articleId=2055802&colID=1207&location=%E5%B9%BF%E5%B7%9E'
headers = {
    'Accept-Encoding': 'gzip',
    'User-Agent': 'okhttp/3.11.0',
    'Content-Length': '97',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'androidId': 'NzgwZTJjNTAyM2MxMzViNQ==',
    'bluetooth': '',
    'brand': 'dGVuY2VudA==',
    'channel': 'eWluZ3lvbmdiYW8=',
    'deviceId': 'ZmZmZmZmZmYtZDgzZS05ZWVkLWZmZmYtZmZmZmVmMDVhYzRh',
    'imei': 'NjY2NjYwMDgyMzMzOTg2',
    'latitude': 'MC4w',
    'longitude': 'MC4w',
    'mac': 'MDg6MDA6Mjc6QzQ6NDY6QzA=',
    'manufacturer': 'VGVuY2VudA==',
    'model': 'dmlydHVhbG1hY2hpbmUy',
    'networkType': 'V2lGaQ==',
    'operator':'',
    'os': 'YW5kcm9pZA==', 
    'osVersion': 'MTk=',
    'screen': 'NzIweDEyODA=',
    'version': 'NS4yLjU=',
    'versionCode': 'NTI1MA==',
    'Connection': 'close',
    'Host': 'api.nfapp.southcn.com',
    }
loginData = 'id=2055802&userID=0&siteID=1&userOtherID=ffffffff-d83e-9eed-ffff-ffffef05ac4a&eventType=0&type=0&'.encode('UTF-8')


request = urllib.request.Request(loginUrl, loginData, headers)
res = urllib.request.urlopen(request)
html = zlib.decompress(res.read(), 16+zlib.MAX_WBITS)
data = html.decode('UTF-8','ignore')
print(data)

좋은 웹페이지 즐겨찾기