爬蟲基礎知識 一、什麼是爬蟲? 向網站發起請求,獲取資源後分析並提取有用數據的程式。 二、爬蟲的基本流程 1、發起請求 2、獲取內容 3、解析內容 4、保存數據 三、Request和Response Request:用戶將自己的信息通過瀏覽器(socket client)發送給伺服器(socket ...
爬蟲基礎知識
一、什麼是爬蟲?
向網站發起請求,獲取資源後分析並提取有用數據的程式。
二、爬蟲的基本流程
1、發起請求
2、獲取內容
3、解析內容
4、保存數據
三、Request和Response
Request:用戶將自己的信息通過瀏覽器(socket client)發送給伺服器(socket server)
Response:伺服器接收請求,分析用戶發來的請求信息,然後返回數據(返回的數據中可能包含其他鏈接,如:圖片,js,css等)
註:瀏覽器在接收Response後,會解析其內容來顯示給用戶,而爬蟲程式在模擬瀏覽器發送請求然後接收Response後,是要提取其中的有用數據。
四、Request中包含什麼?
1、請求方式
主要有GET、POST,還有HEAD、PUT、DELETE、POTIONS等。
2、請求URL
URL,即統一資源定位符,也就是網址,統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麼處理它。
3、請求頭
User-agent、host、cookies
User-agent:請求頭中如果沒有user-agent客戶端配置, 服務端可能將你當做一個非法用戶。
host
cookies:cookie用來保存登錄信息。
一般做爬蟲都會加上請求頭。
4、請求體
請求體是請求時額外攜帶的數據。如果是get方式,請求體沒有內容;如果是post方式,請求體是format data。
五、Response中包含什麼?
1、響應狀態
200:代表成功
301:代表跳轉
404:文件不存在
403:許可權
502:伺服器錯誤
2、響應頭
響應頭需要註意的參數:
(1)Set-Cookie:BDSVRTM=0; path=/:可能有多個,是來告訴瀏覽器,把cookie保存下來;
(2)Content-Location:服務端響應頭中包含Location返回瀏覽器之後,瀏覽器就會重新訪問另一個頁面。
3、響應體
六、能抓取什麼數據?
1、網頁文本(HTML、Json)
2、圖片
3、視頻
4、其他
七、網頁解析的方式
1、直接處理
2、Json處理
3、正則表達式
4、BeautifulSoup
5、PyQuery
6、XPath
八、為什麼抓到的和瀏覽器看到的不一樣?
因為爬蟲爬取的數據是Js沒有渲染的數據,而瀏覽器中看到的是JS完成渲染後的數據。
九、怎麼用JavaScript渲染?
當我們進行網頁爬蟲時,我們會利用一定的規則從返回的 HTML 數據中提取出有效的信息。但是如果網頁中含有 JavaScript 代碼,我們必須經過渲染處理才能獲得原始數據。
1、分析Ajax請求
2、selenium/WebDriver
十、怎麼保存數據?
1、文本
2、關係型資料庫
3、非關係型
4、圖片音頻
各位,我回來了,3月的時候自學爬蟲,不過資料準備不足,加上拖延症發作,到現在爬蟲都還沒入門。未來會邊學邊更新,沒有辦法保證一天一更了。
文中難免有不足之處,歡迎批評指正。
參考資料:
1、什麼是爬蟲:http://www.cnblogs.com/935415150wang/p/7793306.html
2、Python2爬蟲學習系列教程|靜覓:https://cuiqingcai.com/1052.html
3、Python Request庫Get和Post的區別:http://www.cnblogs.com/mango-lee/p/7116425.html
4、爬蟲技術:(JavaScript渲染)動態頁面抓取超級指南:https://blog.csdn.net/sqzhao/article/details/50853996
5、python學習之python爬蟲原理 :http://www.sohu.com/a/251575938_100120307
6、爬蟲從頭學之爬蟲基本原理:https://blog.csdn.net/prospective0821/article/details/80630436