八年開發(fā)大佬整理的爬蟲筆記:三天即可快速學(xué)會爬蟲!

八年開發(fā)大佬整理的爬蟲筆記:三天即可快速學(xué)會爬蟲!

很多小伙伴在剛接觸編程的時候不知道什么是爬蟲,其實爬蟲就是將你在網(wǎng)絡(luò)上所見到的資源批量下載化為己有,操作起來也是比較簡單的。小伙伴需要學(xué)習(xí)資料的話加qun 883-441-06小編會一一發(fā)給大家的。

好了,開始今天的主題吧~

一、什么是爬蟲

爬蟲:請求網(wǎng)站并提取數(shù)據(jù)的自動化程序

百科:網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。

二、爬蟲基本流程

發(fā)起請求:通過HTTP庫向目標(biāo)站點發(fā)起請求,即發(fā)送一個Request,請求可以包含額外的headers等信息,等待服務(wù)器響應(yīng)。

獲取響應(yīng)內(nèi)容:如果服務(wù)器能正常響應(yīng),會得到一個Response,Response的內(nèi)容便是所要獲取的頁面內(nèi)容,類型可能有HTML,Json字符串,二進制數(shù)據(jù)(如圖片視頻)等類型。

解析內(nèi)容:得到的內(nèi)容可能是HTML,可以用正則表達式、網(wǎng)頁解析庫進行解析??赡苁荍son,可以直接轉(zhuǎn)為Json對象解析,可能是二進制數(shù)據(jù),可以做保存或者進一步的處理。

保存數(shù)據(jù):保存形式多樣,可以存為文本,也可以保存至數(shù)據(jù)庫,或者保存特定格式的文件。

三、Request和Response

Request:瀏覽器就發(fā)送消息給該網(wǎng)址所在的服務(wù)器,這個過程叫做HTTP Request。

Response:服務(wù)器收到瀏覽器發(fā)送的消息后,能夠根據(jù)瀏覽器發(fā)送消息的內(nèi)容,做相應(yīng)處理,然后把消息回傳給瀏覽器。這個過程叫做HTTP Response。瀏覽器收到服務(wù)器的Response信息后,會對信息進行相應(yīng)處理,然后展示。

四、Request詳解

請求方式:主要有GET、POST兩種類型,另外還有HEAD、PUT、DELETE、OPTIONS等。

請求URL:URL全稱統(tǒng)一資源定位符,如一個網(wǎng)頁文檔、一張圖片、一個視頻等都可以用URL唯一來確定。

請求頭:包含請求時的頭部信息,如User-Agent、Host、Cookies等信息。

請求體:請求時額外攜帶的數(shù)據(jù)如表單提交時的表單數(shù)據(jù)

五、Response詳解

響應(yīng)狀態(tài):有多種響應(yīng)狀態(tài),如200代表成功、301跳轉(zhuǎn)、404找不到頁面、502服務(wù)器錯誤

響應(yīng)頭:如內(nèi)容類型、內(nèi)容長度、服務(wù)器信息、設(shè)置Cookie等等。

響應(yīng)體:最主要的部分,包含了請求資源的內(nèi)容,如網(wǎng)頁HTML、圖片二進制數(shù)據(jù)等。

六、能抓取哪些數(shù)據(jù)

網(wǎng)頁文本:如HTML文檔、Json格式文本等。

圖片:獲取到的是二進制文件,保存為圖片格式。

視頻:同為二進制文件,保存為視頻格式即可。

And so on:只要是能請求到的,都能獲取。

七、解析方式

直接處理

Json解析

正則表達式

BeautifulSoup

PyQuery

XPath

八、抓取中出現(xiàn)的問題

問:為什么我抓到的和瀏覽器看到的不一樣?

答:網(wǎng)頁通過瀏覽器的解析,加載CSS與JS等文件對網(wǎng)頁進行解析渲染,達到我們看到絢麗的網(wǎng)頁,而我們抓到的文件只是一些代碼,css文件無法調(diào)用,使得樣式不能表現(xiàn)出來,那么網(wǎng)頁就會出現(xiàn)錯位等等問題。

問:怎樣解決JavaScript渲染的問題?

答:分析Ajax請求、Selenium/WebDriver、Splash、PyV8、Ghost.py等庫。

九、保存數(shù)據(jù)

文本:純文本、Json、Xml等。

關(guān)系型數(shù)據(jù)庫:如MySQL、Oracle、SQL Server等具有結(jié)構(gòu)化表結(jié)構(gòu)形式存儲。

非關(guān)系型數(shù)據(jù)庫:如MongoDB、Redis等Key-Value形式存儲。

二進制文件:

如圖片、視頻、音頻等等直接保存成特定格式即可。

文章源自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系小編刪除。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • HTTP基本原理 URI、URL、URN(Uninform Resource) URI(Identifier):統(tǒng)...
    GHope閱讀 2,285評論 2 26
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,942評論 1 92
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,205評論 3 119
  • 1. 一個無名校背景、無名氣、無職位的大學(xué)副教授突然成了網(wǎng)紅,與一般的網(wǎng)紅不同,他不靠臉,不靠迎合讀者的心理,只是...
    不辣的媽閱讀 2,416評論 7 65

友情鏈接更多精彩內(nèi)容