python爬蟲之偽裝瀏覽器

來源:互聯網
上載者:User

標籤:unix   安全   網域名稱   ie版本   登陸   http   伺服器   作用   window   

問題描述:File "D:\python\Lib\httplib.py", line 417, in _read_status

                        raise BadStatusLine(line)

首先我們得對這兩行代碼並對此進行解釋

user_agent=‘Mozilla/4.0(compatible;MSIE 5.5; Windows NT)‘
headers ={ ‘User-Agent‘:user_agent}

User-Agent是http協議中的一部分,屬於頭域的組成部分
這是一種向範文網站提供你所使用的瀏覽器類型,作業系統,瀏覽器核心等資訊的標識
通過這個標識,使用者所訪問的網站可以顯示不同的排版從而為使用者提供更好的體驗或者
進行資訊統計

IE版本Mozilla/4.0(compatible;MSIE8.0;Windows NT 6.0)

版本號碼是MSIE之後的數字,比如MSIE 8.0表示ie8,而Window NT 6.1對應作業系統是window7
Windows NT 6.0 對應作業系統 windows vista  
Windows NT 5.2 對應作業系統 windows 2003   
Windows NT 5.1 對應作業系統 windows xp   
Windows NT 5.0 對應作業系統 windows 2000

UNIX/LINUX 為X11代替

Firefox版本Mozilla/5.0(Windows;U;Windows NT 5.2)Gecko/20088070208 Firefox/3.0.1
其中N:表示無安全加密 I表示弱安全加密 U:表示強安全加密,上面的u表示加密等級
Chrome版本Mozilla/5.0(Windows;U;Windows NT 5.2)AppleWebKit/525.13(KHTML,like Gecko)
其中版本號碼是chrome後的數字
[USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; 360SE)

注意以上的User-Agent的作用就是偽裝成瀏覽器修改http包中的header來實現,
此條代碼的試用環境是網站反感爬蟲的到訪

而這條語句本身沒有問題,正如用User_agent來偽裝瀏覽器尋求訪問,在將headers設定成我們偽裝的地址
此時我們又需要知道urllib和urllib2模組的區別和用法

區別:1.在python中urllib和urllib2不可互相代替
2.urllib2是urllib的增強,但是urllib2有urllib沒有的函數
3.urllib2可以用來設定request參數,來修改header的頭,更改user agent
4.urllib支援設定編碼的函數,urllib.urlencode在類比登陸的時候,經常要編碼過後才能登陸,如果不用
第三方完成類比登陸,就需要用urllib
5.urllib2和urllib一起搭配使用.

關於urllib2的介紹
urllib2提供基礎函數urlopen,通過向指定的url發出請求來擷取資料,最簡單的形式就是
import urllib2
response=urllib2.urlopen(‘網頁‘)
html=response.read()
這個過程就是我們平時刷網頁的代碼形式,基於請求響應模型
response=urllib2.urlopen(‘網頁‘)
這個過程實際上是有兩個步驟:
我們指定一個網域名稱並發送請求
request=urllib2.request(‘網頁‘)
伺服器響應用戶端的請求
response=urllib.urlopen(requset)

 

諤諤扯遠了,開頭的這個問題的原因是在request請求語句中並沒有將headers添加進去,無法構成有效請求,導致請求列表不存在,嗯我是這樣理解的

request = urllib2.Request(url,headers=headers)這樣了之後這個錯誤就消失了,附片

 

python爬蟲之偽裝瀏覽器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.