1. 程式人生 > >python-網路爬蟲初學二:headers的設定和一些高階特性

python-網路爬蟲初學二:headers的設定和一些高階特性

一、設定headers

  1. url = "http://www.server.com/login"
  2. # 設定請求的身份,如果沒有,伺服器可能會沒有響應
  3. user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"
  4. values = {"username""geek""password""**********"}  
  5. # 在headers中設定agent
  6. headers = {"User-Agent": user_agent}  
  7. data = urllib.urlencode(values)  
  8. # 在request中新增headers
  9. request = urllib2.Request(url, data, headers)  
  10. response = urllib2.urlopen(request)  
  11. page = response.read()  
二、對付“反盜鏈”
  1. # 對付“反盜鏈”(伺服器會識別headers中的referer是不是它自己,如果不是則不響應),構建以下headers
  2. headers = {"User-Agent""Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)",  
  3.            "Referer""http://www.zhihu.com/articles"
    }  
三、headers的一些其他屬性
  1. # headers的一些其他屬性:
  2. # User-Agent : 有些伺服器或 Proxy 會通過該值來判斷是否是瀏覽器發出的請求
  3. # Content-Type : 在使用 REST 介面時,伺服器會檢查該值,用來確定 HTTP Body 中的內容該怎樣解析。
  4. # application/xml : 在 XML RPC,如 RESTful/SOAP 呼叫時使用
  5. # application/json : 在 JSON RPC 呼叫時使用
  6. # application/x-www-form-urlencoded : 瀏覽器提交 Web 表單時使用
  7. # 在使用伺服器提供的 RESTful 或 SOAP 服務時, Content-Type 設定錯誤會導致伺服器拒絕服務
四、設定代理
  1. # Proxy(代理)的設定
  2. # urllib2 預設會使用環境變數 http_proxy 來設定 HTTP Proxy。
  3. # 假如一個網站它會檢測某一段時間某個IP 的訪問次數,如果訪問次數過多,它會禁止你的訪問。
  4. # 所以可以設定一些代理伺服器來幫助你做工作,每隔一段時間換一個代理
  5. enable_proxy = True
  6. proxy_handler = urllib2.ProxyHandler({"http"'http://some-proxy.com:8080'})  
  7. null_proxy_handler = urllib2.ProxyHandler({})  
  8. if enable_proxy:  
  9.     opener = urllib2.build_opener(proxy_handler)  
  10. else:  
  11.     opener = urllib2.build_opener(null_proxy_handler)  
  12. urllib2.install_opener(opener)  
五、timeout的設定
  1. # Timeout設定
  2. # 為了解決一些網站實在響應過慢而造成的影響
  3. # 如果第二個引數data為空那麼要特別指定是timeout是多少,寫明形參,如果data已經傳入,則不必宣告
  4. response = urllib2.urlopen('http://www.baidu.com', timeout=10)  
  5. response = urllib2.urlopen('http://www.baidu.com', data, 10)  
六、http的六種協議
  1. # http協議有六種請求方法,get,head,put,delete,post,options,我們有時候需要用到PUT方式或者DELETE方式請求
  2. # PUT:這個方法比較少見。HTML表單也不支援這個。
  3. # 本質上來講, PUT和POST極為相似,都是向伺服器傳送資料,但它們之間有一個重要區別,PUT通常指定了資源的存放位置,而POST則沒有,POST的資料存放位置由伺服器自己決定。
  4. # DELETE:刪除某一個資源。
  5. request = urllib2.Request(url, data=data)  
  6. request.get_method = lambda'PUT'# or 'DELETE'
  7. response = urllib2.urlopen(request)  
  8. # 可以通過下面的方法把 Debug Log 開啟,這樣收發包的內容就會在螢幕上打印出來,方便除錯
  9. httpHandler = urllib2.HTTPHandler(debuglevel=1)  
  10. httpsHandler = urllib2.HTTPSHandler(debuglevel=1)  
  11. opener = urllib2.build_opener(httpHandler, httpsHandler)  
  12. urllib2.install_opener(opener)  
  13. response = urllib2.urlopen('http://www.baidu.com')  

相關推薦

python-網路爬蟲初學:headers設定一些高階特性

一、設定headers url = "http://www.server.com/login" # 設定請求的身份,如果沒有,伺服器可能會沒有響應 user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows N

Python網路爬蟲實戰:抓取分析天貓胸罩銷售資料

本文實現一個非常有趣的專案,這個專案是關於胸罩銷售資料分析的。Google曾給出了一幅世界女性胸部尺寸分佈地圖 ,從地圖中可以明顯看出中國大部分地區呈現綠色(表示平均胸部尺寸為A罩杯),少部分地區呈現藍色(表示平均胸部尺寸為B罩杯) 現在李寧老師也來驗證一下這個

[Python]網路爬蟲):利用urllib2通過指定的URL抓取網頁內容

版本號:Python2.7.5,Python3改動較大,各位另尋教程。 所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來,儲存到本地。  類似於使用程式模擬IE瀏覽器的功能,把URL作為HTTP請求的內容傳送到伺服器端, 然後讀取伺服器端的響應資源。 在

python網路爬蟲學習()一個爬取百度貼吧的爬蟲程式

今天進一步學習了python網路爬蟲的知識,學會了寫一個簡單的爬蟲程式,用於爬取百度貼吧的網頁並儲存為HTML檔案。下面對我在實現這個功能時的程式碼以及所遇到的問題的記錄總結和反思。 首先分析實現這個功能的具體思路: 通過對貼吧URL的觀察,可以看出貼吧中的

02.Python網路爬蟲第二彈《httphttps協議》

  一.HTTP協議   1.官方概念:     HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是用於從全球資訊網(WWW:World Wide Web )伺服器傳輸超文字到本地瀏覽器的傳送協議。(雖然童鞋們將這條概念都看

[Python]網路爬蟲):利用urllib通過指定的URL抓取網頁內容

1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=F

python-網路爬蟲初學三:網路異常的捕獲

一、URLError產生原因 # 網路無連線,即本機無法上網 # 連線不到特定伺服器 # 伺服器不存在 # 使用try-except捕獲異常 request = urllib2.Request("http://www.xxxxx.com") try: urllib2

Python網路爬蟲實戰()資料解析

上一篇說完了如何爬取一個網頁,以及爬取中可能遇到的幾個問題。那麼接下來我們就需要對已經爬取下來的網頁進行解析,從中提取出我們想要的資料。 根據爬取下來的資料,我們需要寫不同的解析方式,最常見的一般都是HTML資料,也就是網頁的原始碼,還有一些可能是Json資料,Json資料是一種輕量級的資料交換格式,相對來說

python網路爬蟲(web spider)系統化整理總結():爬蟲python程式碼示例(兩種響應格式:jsonhtml)

        上一篇部落格(入門知識篇),對爬蟲有了一個基本的瞭解,但是具體怎麼實現一個爬蟲程式呢?         一般情況下,我們在瀏覽器獲取資訊,是

python網路爬蟲

瞭解HTTP協議 請求與響應模式的協議: 使用者提出對URL(用來定位網路中的資源位置)地址資料的操作請求,伺服器給予相應。 無狀態的應用層協議:兩次請求之間不會互相影響。 HTTP協議支援的請求種類: 如果URL處的資源很龐大,我們就可以用head方法讀取部分資訊。

python網路爬蟲開發實戰(崔慶才)_14頁_chromedriver環境配置載入

自己1,環境配置,我下載了相對應的Chromedriver(其實我也不知道對不對應,都是下載最新版的我猜應該會對應),然後在任何資料夾下輸入command+shift+G,開啟輸入視窗,任何輸入  /usr/local/bin  ,然後複製下載好的Chromedriver進去bin下面,(

python網路爬蟲爬取汽車之家的最新資訊照片

實現的功能是爬取汽車之家的最新資訊的連結 題目和文章中的照片 爬蟲需要用到我們使用了 requests 做網路請求,拿到網頁資料再用 BeautifulSoup 進行解析 首先先檢查是否安裝了pip,如果已經安裝了pip,直接pip install requests,pip uninstal

[Python]網路爬蟲(一):抓取網頁的含義URL基本構成

一、網路爬蟲的定義 網路爬蟲,即Web Spider,是一個很形象的名字。 把網際網路比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。 網路蜘蛛是通過網頁的連結地址來尋找網頁的。 從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它連結地址

實戰 Python 網路爬蟲:美團美食商家資訊使用者評論

實戰 Python 網路爬蟲美團美食商家資訊和使用者評論作者簡介:Hyx,多年系統研發經驗,主要

Python網路爬蟲httphttps協議

一.HTTP協議   1.官方概念:     HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是用於從全球資訊網(WWW:World Wide Web )伺服器傳輸超文字到本地瀏覽器的傳送協議。(雖然童鞋們將這條概念都看爛了,但是也沒辦法,畢竟這就是HTTP

[Python] 網路爬蟲正則表示式學習總結

  以前在學校做科研都是直接利用網上共享的一些資料,就像我們經常說的dataset、beachmark等等。但是,對於實際的工業需求來說,爬取網路的資料是必須的並且是首要的。最近在國內一家網際網路公司實習,我的mentor交給我的第一件事就是去網路上爬取資料,並對爬取的資料進行相關的分析和解析。 1.利用u

Python網路爬蟲(1)--url訪問及引數設定

標籤: 環境:Python2.7.9 / Sublime Text 2 / Chrome 1.url訪問,直接呼叫urllib庫函式即可 import urllib2 url=‘http://www.baidu.com/‘ response = urllib2.urlopen(url) html=re

[python網路爬蟲]表單登陸爬蟲

當你想編寫更為複雜的網頁爬蟲的時候,你面臨的第一個問題也許會是:“如何獲取登陸頁面後的資訊?”,因為網路已經飛快地向互動、社交媒體、使用者生成內容方向發展。表格和登陸就成為這些型別網站幾乎不可或缺的主要組成。幸運的是,表單和登陸還是相對比較容易處理的。 截至當前,在我們之

網路程式設計()——伺服器客戶端資訊的獲取

  目錄 1、字串IP地址和二進位制IP地址結構的轉換 2.套接字檔案描述符的判定 3、IP地址與域名之間的相互轉換 4、協議名稱處理函式 1、字串IP地址和二進位制IP地址結構的轉換 #include <sys/socket.h> #inclu

淺談網路爬蟲中深度優先演算法簡單程式碼實現

學過網站設計的小夥伴們都知道網站通常都是分層進行設計的,最上層的是頂級域名,之後是子域名,子域名下又有子域名等等,同時,每個子域名可能還會擁有多個同級域名,而且URL之間可能還有相互連結,千姿百態,由此構成一個複雜的網路。 當一個網站的URL非常多的時候,我們務必要設計好URL,否則在後期的理解