標籤:alt read http chrome 設定 agent like UI vpd
為什麼要添加頭部資訊,因為有時候有些網頁會有反爬蟲的設定,導致無法擷取正常的網頁,在這裡,在代碼的頭部添加一個headers資訊,類比成瀏覽器去訪問網頁。
沒有添加頭部資訊的代碼
import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"file = urllib2.urlopen(url)html = file.read()print html
接下來添加頭部資訊,首先在瀏覽器開啟百度一下,然後檢查網頁的頭部資訊,找到User-Agent,這就是我們用來類比瀏覽器要用到的資訊,把他複製下來。
然後在代碼裡面添加頭部資訊的變數儲存對應的headers資訊,定義的格式為(“User-Agent”,具體資訊)。
在代碼中添加頭部資訊的方法有兩種:
方法1:使用build_opener()來添加
import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36")opener = urllib2.build_opener()opener.addheaders = [headers]file = opener.open(url)html = file.read()print html
我們利用opener.open(url)就是開啟網頁,這個opener就是具有頭部資訊的操作了。
方法2:利用add_header()來添加
import urllib2url = "http://blog.51cto.com/lsfandlinux/2046467"req = urllib2.Request(url)req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36")file = urllib2.urlopen(req)html = file.read()print html
該方法是通過urllib2裡的Request來建立一個Request對象賦值給變數req,然後使用add_header添加頭部資訊。
在python擷取網頁的代碼中添加頭資訊類比瀏覽器