1. 程式人生 > >python應用之爬蟲實戰1 爬蟲基本原理

python應用之爬蟲實戰1 爬蟲基本原理

協議 針對 應用領域 原理 error data target 資訊 搜索

知識內容:

1.爬蟲是什麽

2.爬蟲的基本流程

3.request和response

4.python爬蟲工具

參考:http://www.cnblogs.com/linhaifeng/articles/7773496.html

一、爬蟲是什麽

1.爬蟲定義

爬蟲:把互聯網比作一張大的蜘蛛網,那一臺計算機上的數據便是蜘蛛網上的一個獵物,而爬蟲程序就是一只小蜘蛛,沿著蜘蛛網抓取自己想要的獵物/數據, 爬蟲實質是向網站發起請求,獲取資源後分析並提取有用數據的程序

2.爬蟲分類

  • 定向:爬取特定領域的信息
  • 非定向:爬取不確定領域的信息,比如百度搜索、谷歌搜索

3.爬蟲價值

互聯網中最有價值的便是數據

,比如天貓商城的商品信息,鏈家網的租房信息,雪球網的證券投資信息等等,這些數據都代表了各個行業的真金白銀,可以說,誰掌握了行業內的第一手數據,誰就成了整個行業的主宰,如果把整個互聯網的數據比喻為一座寶藏,那我們的爬蟲課程就是來教大家如何來高效地挖掘這些寶藏,掌握了爬蟲技能,你就成了所有互聯網信息公司幕後的老板,換言之,它們都在免費為你提供有價值的數據

4.爬蟲應用領域

爬蟲應用比較多的地方:

  • 搜索引擎
  • 數據分析
  • 比價網站
  • 門戶網站(新聞、資訊)

二、爬蟲的基本流程

技術分享圖片

基本流程:

  • 發起請求:使用http庫向目標站點發起請求,即發送一個Request(請求頭、請求體等)
  • 獲取響應內容: Response(html,json,圖片,視頻等)
  • 解析內容: 解析html數據\解析json數據\解析二進制數據
  • 保存數據: 數據庫\文件

三、request和response

關於http協議:http://www.cnblogs.com/wyb666/p/9014857.html

1.request與response

  • request:請求
  • response:響應
  • request:用戶將自己的信息通過瀏覽器發送給服務器
  • response:服務器接收請求,分析用戶發來的請求信息,然後返回數據(返回的數據中可能包含其他鏈接,如:圖片,js,css等)

註:瀏覽器在接收Response後,會解析其內容來顯示給用戶,而爬蟲程序在模擬瀏覽器發送請求然後接收Response後,是要提取其中的有用數據。

2.request

(1)請求方式

  • 常用的請求方式:GET,POST
  • 其他請求方式:HEAD,PUT,DELETE,OPTHONS
  • post與get請求最終都會拼接成這種形式:k1=xxx&k2=yyy&k3=zzz
  • post請求的參數放在請求體內:可用瀏覽器查看,存放於form data內
  • get請求的參數直接放在url後

(2)請求url

url全稱統一資源定位符,如一個網頁文檔,一張圖片, 一個視頻等都可以用url唯一來確定

(3)網頁的加載過程

  • 加載一個網頁,通常都是先加載document文檔
  • 在解析document文檔的時候,遇到鏈接,則針對超鏈接發起下載圖片的請求

(4)請求頭

  • User-agent:請求頭中如果沒有user-agent客戶端配置,服務端可能將你當做一個非法用戶
  • cookies:cookie用來保存登錄信息
  • 一般做爬蟲都會加上請求頭(部分信息)

(5)請求體

  • 如果是get方式,請求體沒有內容
  • 如果是post方式,請求體是format data
  • 登錄窗口,文件上傳等,信息都會被附加到請求體內
  • 登錄,輸入錯誤的用戶名密碼,然後提交,就可以看到post,正確登錄後頁面通常會跳轉,無法捕捉到post

四、python爬蟲工具

1.請求庫

urllib模塊:python內置模塊,主要包含urllib.request、urllib.response、urllib.parse和urllib.error三部分

requests庫:第三方模塊,基於 urllib,采用 Apache2 Licensed 開源協議的 HTTP 庫。比 urllib 更方便,可節約大量的工作,完全滿足 HTTP 測試需求

selenium庫:第三方模塊,最初是一個自動化測試工具,在爬蟲中使用它主要是為了解決requests無法直接執行JavaScript代碼的問題

2.解析庫

re模塊:python內置模塊, 提供了正則表達式操作所需要的功能,能對HTML進行解析

BeautifulSoup4庫:第三方模塊,是一個可以從HTML或XML文件中提取數據的Python庫

3.爬蟲框架

Scrapy框架:一個開源和協作的框架,其最初是為了頁面抓取 (更確切來說, 網絡抓取 )所設計的,使用它可以以快速、簡單、可擴展的方式從網站中提取所需的數據。但目前Scrapy的用途十分廣泛,可用於如數據挖掘、監測和自動化測試等領域,也可以應用在獲取API所返回的數據(例如 Amazon Associates Web Services ) 或者通用的網絡爬蟲

http://www.cnblogs.com/wyb666/p/9014402.html

python應用之爬蟲實戰1 爬蟲基本原理