我今天尝试爬去糗事百科的。F12后发现REquest headers中Accept-Encoding:gzip, deflate, sdch 我就以为是被压缩的,后来
response=urllib.request.urlopen(Request print(response.info().get('Content-Encoding'))
返回的是None,请问到底如何确定否被压缩
人生最曼妙的风景,竟是内心的淡定与从容!
このヘッダーが圧縮される前に、クロール時に Accept-Encoding を設定する必要があります。
Accept-Encoding
ブラウザの Accept-Encoding:gzip, deflate, sdch は、ブラウザが gzip、deflate、sdch の 3 つの圧縮方法をサポートしていることを Web サイトに伝えます。つまり、これは Web サイトがサポートする圧縮方式ではなく、ブラウザーがサポートする圧縮方式を表します。
Accept-Encoding:gzip, deflate, sdch
gzip
deflate
sdch
Web サイトはサポートされている圧縮方法の 1 つを選択して返します。圧縮方法は Content-Encoding の値です。ブラウザは、この値に基づいて、対応する解凍方法を選択します。
Content-Encoding
Yibai は gzip をサポートしていますが、Accept-Encoding が設定されていない場合、圧縮は行われません。
上記のスクリプトの出力は
このヘッダーが圧縮される前に、クロール時に
Accept-Encoding
を設定する必要があります。ブラウザの
Accept-Encoding:gzip, deflate, sdch
は、ブラウザがgzip
、deflate
、sdch
の 3 つの圧縮方法をサポートしていることを Web サイトに伝えます。つまり、これは Web サイトがサポートする圧縮方式ではなく、ブラウザーがサポートする圧縮方式を表します。Web サイトはサポートされている圧縮方法の 1 つを選択して返します。圧縮方法は
Content-Encoding
の値です。ブラウザは、この値に基づいて、対応する解凍方法を選択します。Yibai は
リーリーgzip
をサポートしていますが、Accept-Encoding
が設定されていない場合、圧縮は行われません。上記のスクリプトの出力は
です。 リーリー