天天看點

設定使用者代理User Agent通路網頁(Python2.7)

1. 概念

User Agent使用者代理,是一個标志,供服務端識别用戶端的作業系統和浏覽器情況。

比如,如果想判斷通路網站的浏覽器是否是微信浏覽器,就可以判斷使用者代理,來實作網頁僅能從微信自帶浏覽器通路。

另外,如果使用urllib2預設的代理字元串,可能會被某些網站屏蔽(不想被通過代碼通路)。

2. 在python中設定代理

代碼如下:

#!/usr/bin/python2.7
# coding=UTF-8
import urllib2

#變量區域
url="http://www.baidu.com/"#待下載下傳的網址

#方法區域
def downloadWebsite(url,retry_time=5,user_agent="temp"):
    print("start to download:"+url+",the retry time is:"+str(retry_time))
    header={"User-Agent:":user_agent}
    request=urllib2.Request(url,headers=header)
    try:
        result=urllib2.urlopen(url).read()
    except urllib2.URLError as ex:
        if retry_time==1:
            return "download error,the reason is:"+ex.reason+",error code"+str(ex.code)
        else:
            return downloadWebsite(url,retry_time-1)
    return result

result=downloadWebsite(url)
print(result)
      

3. 更多設定

下面是一個通過Firefox浏覽器檢視的請求頭情況,可見Linux和Firefox字樣。根據上面的代碼header={"User-Agent:":user_agent} request=urllib2.Request(url,headers=header),我們應該可以修改其他請求頭的資訊。

設定使用者代理User Agent通路網頁(Python2.7)