Dieser Artikel stellt hauptsächlich vor, wie Python Anti-Crawlern widersteht, indem es Header-Daten verschleiert. Jetzt kann ich es mit Ihnen teilen.
0x00 Umgebung
Systemumgebung: win10
Schreibtool: JetBrains PyCharm Community Edition 2017.1.2 x64
Python-Version: Python-3.6.2
Paketerfassungstool: Fiddler 4
0x01 Header-Daten-Verschleierungsidee
Senden Sie Daten über http an den Server, wie folgt ist Verwenden Sie Fiddler, um die unverhüllten Header-Informationen von Python zu erfassen
GET /u012870721 HTTP/1.1 Accept-Encoding: identity Host: blog.csdn.net User-Agent: <span style="color:#ff0000;">Python-urllib/3.6</span> Connection: close
Python-urllib/3.6
Offensichtlich sind wir entlarvt. Jetzt muss ich fragen, was soll ich tun? Simulieren Sie einen Browser und geben Sie vor, ein Browser zu sein
Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Referer: http://write.blog.csdn.net/postlist Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.8
0x02-Codeimplementierung
from urllib import request html_url = "http://blog.csdn.net/u012870721"; #伪装构造头 header ={ "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", "Accept":" text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Encoding": "gzip,deflate", "Accept-Language": "zh-CN,zh;q=0.8" }; #int main() #{ req = request.Request(url=html_url, headers=header); resp = request.urlopen(req); # return 0; # }
Informationsheader wird nach der Verschleierung gesendet
GET /u012870721 HTTP/1.1 Host: blog.csdn.net Connection: close Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip,deflate Accept-Language: zh-CN,zh;q=0.8
Verwandte Empfehlungen:
Einige Bereitstellungsbefehle für die Centos Python-Produktionsumgebung
Das obige ist der detaillierte Inhalt vonPython widersteht Anti-Crawlern, indem es Header-Daten verschleiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!