Heim >Backend-Entwicklung >Python-Tutorial >Verwenden Sie Python2 und Python3, um Browser zu verschleiern und Webinhalte zu crawlen
Die Python-Webseiten-Crawling-Funktion ist sehr leistungsstark. Sie können urllib oder urllib2 verwenden, um den Inhalt von Webseiten einfach zu crawlen. Oft müssen wir jedoch darauf achten, dass viele Websites möglicherweise über Anti-Collection-Funktionen verfügen, sodass es nicht so einfach ist, die gewünschten Inhalte zu erfassen.
Heute werde ich zeigen, wie man Browser simuliert, um beim Herunterladen von Python2 und Python3 das Blockieren und Crawlen zu überspringen.
Das grundlegendste Crawlen:
#! /usr/bin/env python # -*- coding=utf-8 -*- # @Author pythontab import urllib.request url = "http://www.pythontab.com" html = urllib.request.urlopen(url).read() print(html)
Aber... einige Websites können nicht gecrawlt werden und verfügen über Anti-Sammeleinstellungen, daher müssen wir die Methode ändern
Python2 Mittel (die neueste stabile Version python2.7)
#! /usr/bin/env python # -*- coding=utf-8 -*- # @Author pythontab.com import urllib2 url="http://pythontab.com" req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Accept':'text/html;q=0.9,*/*;q=0.8', 'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding':'gzip', 'Connection':'close', 'Referer':None #注意如果依然不能抓取的话,这里可以设置抓取网站的host } req_timeout = 5 req = urllib2.Request(url,None,req_header) resp = urllib2.urlopen(req,None,req_timeout) html = resp.read() print(html)
python3 Mittel (die neueste stabile Version python3.3)
#! /usr/bin/env python # -*- coding=utf-8 -*- # @Author pythontab import urllib.request url = "http://www.pythontab.com" headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Accept':'text/html;q=0.9,*/*;q=0.8', 'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding':'gzip', 'Connection':'close', 'Referer':None #注意如果依然不能抓取,这里可以设置抓取网站的host } opener = urllib.request.build_opener() opener.addheaders = [headers] data = opener.open(url).read() print(data)