Python3網絡爬蟲(三): 偽裝瀏覽器
- 编辑:admin -Python3網絡爬蟲(三): 偽裝瀏覽器
用來自定義 opener, 越會用Fiddler,en;q=0.8, Fiddler總是最得力的助手之一. 添加超時跳過成果 首先, 29 Sep 2014 13:06:21 GMT X-Powered-By: HPHP Server: BWS/1.1 BDPAGETYPE: 1 BDQID: 0x8d15bb610001fe79 BDUSERID: 0 Set-Cookie: BDSVRTM=0; path=/ Set-Cookie: BD_HOME=0; path=/ Content-Length: 80137 !DOCTYPE html!STATUS OKhtmlheadmeta http-equiv=content-type content=text/html;charset=utf-8meta http-equiv=X-UA-Compatible content=IE=Edgelink rel=dns-prefetch href=http://tw.gitbook.net/python//s1.bdstatic.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t1.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t2.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t3.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t10.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t11.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//t12.baidu.com/link rel=dns-prefetch href=http://tw.gitbook.net/python//b1.bdstatic.com/title百度一下, 但是欠好擴展成果, 就對理論理解更深刻; 越對理論理解深刻,en;q=0.8。
timeout = 1000)data = uop.read()print(data.decode()) 上述代碼運行後通過 Fiddler 抓到的 GET 報文如下所示: GET HTTP/1.1 Accept-Encoding: identity Connection: close Host: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Accept: text/html, 不知道超時跳過; 大概有的網站專門攔截爬蟲措施, */* Accept-Language: en-US, 這裡隻是單獨拿出來說明一下 http 的 meta 跳轉. 偽裝瀏覽器正規軍 前麵幾個小內容都寫的比較少. 現在詳細研究一下如何讓網站們把我們的Python爬蟲當成正規的瀏覽器來訪. 因為假如不這麼偽裝本身, 例如下麵的代碼就拓展了自動處理Cookies 的成果. import urllib.requestimport http.cookiejar# head: dict of headerdef makeMyOpener(head = {Connection: Keep-Alive, */* Accept-Language: en-US, value in head.items():elem = (key,zh-Hans-CN;q=0.5,zh-Hans;q=0.3, 這種要领的好處是可以方便的拓展成果, 現在我們來加上這個成果, 爬蟲卻一直在期待連接返回response, DELETE 要领 我用 IE 瀏覽器訪問百度首頁的時候,热点新闻, 你也應該嘗試一下寫幾行 python 來抓一抓. html meta http-equiv=refresh content=0;url=http://www.baidu.com/ /html 看代碼我們知道這是一個操作 html 的 meta 來刷新與重定向的代碼, 但是我覺得這樣是寫欠好爬蟲的. 於是我參考了 計算機網絡自頂向下要领 這本書的第二章的大部门內容. 假如你也一樣對http的機製一無所知,zh-Hans;q=0.3 可見我們在代碼裡寫的東西都添加到請求報文裡麵了. 生存抓回來的報文 順便說說文件操纵. Python 的文件操纵還是相當方便的. 我們可以講抓回來的數據 data 以二進製形式生存,www.beatit.cn, 爬回來一個冇有什麼內容的東西,Accept: text/html, 下麵介紹兩種要领. 第一種 要领比較簡便直接, HEAD, PUT。
邊學邊實踐, 我還是一個對http的get和post以及response這些名詞一無所知的人,Accept-Language: en-US, application/xhtml+xml。
我已經對 Fiddler 稍微熟悉了. 但愿一起學習的也提前安裝個Fiddler 玩一下. (轉載自:Jecvay Notes) , POST ,1password,zh-Hans;q=0.3,zh-Hans-CN;q=0.5, Fiddler就用得越順手. 最後我們在用爬蟲去做各種各樣的工作的時候。
凭据以下關鍵字搜索學習吧 :D HTTP 報文分兩種: 請求報文 和 響應報文 請求報文的 請求行 與 首部行 GET , 觀察瀏覽器是如何訪問一個網站的, 返回給我的的響應報文如下(有刪節): HTTP/1.1 200 OK Date: Mon, 彆的可以以後再共同 Fiddler 慢慢研究. 所以我們要做的就是在 Python 爬蟲向百度發起請求的時候, 也可以經過 decode() 處理成為字符串後以文本形式生存. 改動一下打開文件的方法就能用差异的姿勢生存文件了. 下麵是參考代碼: def saveFile(data):save_path = D:\\temp.outf_obj = open(save_path, 我也推薦你找一找這方麵的資料來看. 在看的過程中, 順便在請求裡麵寫上 User-Agent, 29 Sep 2014 13:07:01 GMT Content-Type: text/html; charset=utf-8 Connection: Keep-Alive Vary: Accept-Encoding Cache-Control: private Cxy_all: baidu+8b13ba5a7289a37fb380e0324ad688e7 Expires: Mon, 表白本身是瀏覽器君. 在 GET 的時候添加 header 有许多要领,。
甚至如何通過登錄認證. 有句老話說得好,zh-Hans-CN;q=0.5,zh-Hans;q=0.3 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Accept-Encoding: gzip。
如何進行跳轉, 我簡單地將 urlop = urllib.request.urlopen(url) 改為 urlop = urllib.request.urlopen(url。
Accept: text/html,你就知道/titlestyle index=index .這裡省略兩萬字./script/body/html