Heim >Backend-Entwicklung >Python-Tutorial >Verwenden Sie Python2 und Python3, um Browser zu verschleiern und Webinhalte zu crawlen

Verwenden Sie Python2 und Python3, um Browser zu verschleiern und Webinhalte zu crawlen

高洛峰
高洛峰Original
2016-10-18 13:55:381971Durchsuche

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)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn