爬虫基本原理讲解
(一)簡介
今天,我們將對爬蟲的基礎知識做一個基本的梳理,以便大家掌握爬蟲的基本思路,爬蟲即為網絡資源數據獲取,用一句話概括就是:
請求網站并提取數據的自動化程序
爬蟲的基本流程分為四步:
在第一二步Request和Response是爬蟲的獲取階段比較重要的兩個概念,我們來仔細看一下:
?
(二)Request是什么
request包含四個部分,如下圖所示:
?
1.首先,請求方式中Get和Post是比較常用的兩種類型,我們打開百度圖片網頁查看后臺可找到:
?
2.其次,URL是什么呢:
介于上面已經展示了全部頁面,接下來我們將視野縮小:
?
? 3.再接下來,請求頭也就是我們所說的Headers:
? ? ?其中,所有信息以鍵值對的形式出現
?
4.請求體即是包含在其中的內容
? (三)Response包含什么:
這三個東西在網頁后臺也很好找到:
接下來,我們用一個小小的代碼演示如何在py中獲取這些信息:
1 import requests 2 3 response = requests.get('https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E5%9B%BE%E7%89%87&rsv_pq=fe75916b0003c82f&rsv_t=8a18mej7NYPhMUacBIRKs36oA1Uxi8xZHEZEdSJdlRUPXjHxAnwVX7%2BuE5g&rqlang=cn&rsv_enter=1&rsv_sug2=0&inputT=996&rsv_sug4=1770') 4 5 print(response.text) 6 print('-----華麗的分割線-----') 7 print(response.status_code) 8 9 》》》輸出: 10 <html> 11 <head> 12 <script> 13 location.replace(location.href.replace("https://","http://")); 14 </script> 15 </head> 16 <body> 17 <noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript> 18 </body> 19 </html> 20 -----華麗的分割線----- 21 200?
?
那我們能抓取一些怎樣的數據呢?其實只要能請求到的,我們都能獲取,只是如何去再解析他而已。
像網頁文本,如HTML文檔,Json格式文本等;
像圖片,我們獲取到的是二進制文件,保存為圖片格式;
像視頻,同樣為二進制文件,保存為視頻格式即可。
?
那接下來的問題就是怎樣來進行網頁的解析:
(四)如何解析與保存
我們可以直接處理,也可以Json解析,或者正則表達式解析HTML標簽,或者用一些解析庫如BeautifulSoup,PyQuery,XPath。
當我們獲取數據后如何保存呢,我們可以有如下幾種方式保存:
?
以上就是對爬蟲的一個基本框架的解釋,感謝閱讀,后續再見!
?
轉載于:https://www.cnblogs.com/boru-computer/p/9692018.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 难缠的this
- 下一篇: Flutter 15: 图解 ListV