1. 程式人生 > >在python獲取網頁的代碼中添加頭信息模擬瀏覽器

在python獲取網頁的代碼中添加頭信息模擬瀏覽器

alt 把他 無法 app 兩種 port tex 方法 vpd

為什麽要添加頭部信息,因為有時候有些網頁會有反爬蟲的設置,導致無法獲取正常的網頁,在這裏,在代碼的頭部添加一個headers信息,模擬成瀏覽器去訪問網頁。

沒有添加頭部信息的代碼

import urllib2
url = "http://blog.51cto.com/lsfandlinux/2046467"
file = urllib2.urlopen(url)
html = file.read()
print html

接下來添加頭部信息,首先在瀏覽器打開百度一下,然後檢查網頁的頭部信息,找到User-Agent,這就是我們用來模擬瀏覽器要用到的信息,把他復制下來。
技術分享圖片

然後在代碼裏面添加頭部信息的變量存儲對應的headers信息,定義的格式為(“User-Agent”,具體信息)。

在代碼中添加頭部信息的方法有兩種:
方法1:使用build_opener()來添加

import urllib2
url = "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 urllib2
url = "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獲取網頁的代碼中添加頭信息模擬瀏覽器