爬蟲第一課:爬蟲的基本原理
阿新 • • 發佈:2021-02-03
1.什麼是爬蟲
請求⽹站並提取資料的⾃動化程式
2.爬蟲基本流程
- 發起請求。通過HTTP庫向⽬標站點發起請求,即傳送⼀個Request,請求可以包含額外的headers等資訊,等待伺服器響應。
- 獲取響應內容。如果伺服器能正常響應,會得到⼀個Response,Response的內容便是所要獲取的⻚⾯內容,型別可能有HTML,Json字串,⼆進位制資料(如圖⽚視訊)等型別。
- 解析內容,得到的內容可能是HTML,可以⽤正則表示式、⽹⻚解析庫進⾏解析。可能是Json,可以直接轉為Json物件解析,可能是⼆進位制資料,可以做儲存或者進⼀步的處理。
- 儲存資料。儲存形式多樣,可以存為⽂本,也可以儲存⾄資料庫,或者儲存特定格式的⽂件。
3.什麼是Request和Response?
- 瀏覽器就傳送訊息給該⽹址所在的伺服器,這個過程叫做HTTP Request。
- 伺服器收到瀏覽器傳送的訊息後,能夠根據瀏覽器傳送訊息的內容,做相應處理,然後把訊息回傳給瀏覽器。這個過程叫做HTTP Response。
- 瀏覽器收到伺服器的Response資訊後,會對資訊進⾏相應處理,然後展示。
Request
- 請求⽅式.主要有GET、POST兩種型別,另外還有HEAD、PUT、DELETE、OPTIONS等。
- 請求URL.URL全稱統⼀資源定位符,如⼀個⽹⻚⽂檔、⼀張圖⽚、⼀個視訊等都可以⽤URL唯⼀來確定。
- 請求頭.包含請求時的頭部資訊,如User-Agent、Host、Cookies等資訊。
- 請求體.請求時額外攜帶的資料如表單提交時的表單資料.
Response
- 響應狀態.有多種響應狀態,如200代表成功、301跳轉、404找不到⻚⾯、502伺服器錯誤
- 響應頭.如內容型別、內容⻓度、伺服器資訊、設定Cookie等等。
- 響應體.最主要的部分,包含了請求資源的內容,如⽹⻚HTML、圖⽚⼆進位制資料等。
4.能抓怎樣的資料?
- ⽹⻚⽂本.如HTML⽂檔、Json格式⽂本等。
- 圖⽚.獲取到的是⼆進位制⽂件,儲存為圖⽚格式。
如定點陣圖中圖片網址複製下來
import requests
response = requests.get('https://h.2345cdn.net/i/search20200812/pic-1.png' )#響應
print(response.content)#列印二進位制格式,圖片為二進位制
#寫入檔案
with open('D:\\deeplearn\\xuexicaogao\\百度.jpg','wb') as f:
f.write(response.content)
f.close()
print('結束')
-
視訊。同為⼆進位制⽂件,儲存為視訊格式即可。
-
其他。只要是能請求到的,都能獲取。
5.解析⽅式
我們需要對得到的網頁原始碼進行解析,解析方式有如下
- 直接處理。構造簡單,內容簡單可以直接處理
- Json解析。
- 正則表示式
- BeautifulSoup
- XPath
- PyQuery
6.如何儲存資料
- ⽂本。純⽂本、Json、Xml等。
- 關係型資料庫。如MySQL、Oracle、SQL Server等具有結構化表結構形式儲存。
- ⾮關係型資料庫。如MongoDB、Redis等Key-Value形式儲存。
- ⼆進位制⽂件。如圖⽚、視訊、⾳頻等等直接儲存成特定格式即可。
創作不易,大佬請留步… 動起可愛的雙手,來個贊再走唄 (๑◕ܫ←๑)