02、爬蟲基本原理

1、什么是爬蟲?

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

2、爬蟲基本流程

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

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

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

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

請求和響應(yīng)
請求

3、請求的內(nèi)容主要有:

請求方式:get,post、請求URL、請求頭、請求體

響應(yīng)

4、響應(yīng)的內(nèi)容主要有:

響應(yīng)狀態(tài)、響應(yīng)頭、響應(yīng)體

5、實(shí)際操作

5.1、get請求百度

>>> import requests

>>> response = requests.get('http://www.baidu.com')

>>> print(response.text)

發(fā)出get請求

5.2、打印響應(yīng)的其他內(nèi)容

>>> print(response.headers)

打印響應(yīng)頭

>>> print(response.status_code)

打印響應(yīng)代碼

5.3、添加請求頭

添加請求頭信息

6、能抓怎樣的數(shù)據(jù)?

能抓取怎樣的信息

可以抓?。壕W(wǎng)頁文本、圖片、視頻、其他

7、怎樣來解析?

解析方式

爬取下來的數(shù)據(jù)解析方式主要有:直接處理、Json解析、正則表達(dá)式、BeautifulSoup、PyQuery、XPath

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

部分頁面存在JavaScript渲染

9、怎樣解決JavaScript渲染的問題?

解決JavaScript渲染

第一種是分析Ajax請求,第二種是通過Selenium或WebDriver模擬瀏覽器渲染

10、可以怎樣保存數(shù)據(jù)?

保存數(shù)據(jù)的方法

保存數(shù)據(jù)的方法:文本、關(guān)系型數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫、二進(jìn)制文件

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

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