一、爬蟲基本流程1. 發(fā)起請(qǐng)求通過(guò)HTTP庫(kù)向目標(biāo)站點(diǎn)發(fā)起請(qǐng)求,,即發(fā)送一個(gè)Request,,請(qǐng)求可以包含額外的headers等信息,,等待服務(wù)器響應(yīng),。 2. 獲取響應(yīng)內(nèi)容如果服務(wù)器能正常響應(yīng),,會(huì)得到一個(gè)Response,Response的內(nèi)容便是所要獲取的頁(yè)面內(nèi)容,,類型可能有HTML,,Json字符串,二進(jìn)制數(shù)據(jù)(如圖片視頻)等類型,。 3. 解析內(nèi)容得到的內(nèi)容可能是HTML,,可以用正則表達(dá)式、網(wǎng)頁(yè)解析庫(kù)進(jìn)行解析,??赡苁荍son,可以直接轉(zhuǎn)為Json對(duì)象解析,,可能是二進(jìn)制數(shù)據(jù),,可以做保存或者進(jìn)一步的處理。 4.保存數(shù)據(jù)保存形式多樣,,可以存為文本,,也可以保存至數(shù)據(jù)庫(kù),或者保存特定格式的文件,。 二,、Request與Response瀏覽器發(fā)送消息給該網(wǎng)址所在的服務(wù)器,這個(gè)過(guò)程叫做HTTP Request,。服務(wù)器收到瀏覽器發(fā)送的消息后,,能夠根據(jù)瀏覽器發(fā)送消息的內(nèi)容,做相應(yīng)處理,,然后把消息回傳給瀏覽器,。這個(gè)過(guò)程叫做HTTP Response。 瀏覽器收到服務(wù)器的Response信息后,,會(huì)對(duì)信息進(jìn)行相應(yīng)處理,,然后展示。 三,、Request1.請(qǐng)求方式主要有GET,、POST兩種類型,另外還有HEAD,、PUT,、DELETE、OPTIONS等,。 2.請(qǐng)求URLURL全稱統(tǒng)一資源定位符,,如一個(gè)網(wǎng)頁(yè)文檔、一張圖片、一個(gè)視頻等都可以用URL唯一來(lái)確定,。 3.請(qǐng)求頭包含請(qǐng)求時(shí)的頭部信息,,如User-Agent、Host,、Cookies等信息,。 4.請(qǐng)求體請(qǐng)求時(shí)額外攜帶的數(shù)據(jù),如表單提交時(shí)的表單數(shù)據(jù) 四,、Response1.響應(yīng)狀態(tài)有多種響應(yīng)狀態(tài),,如200代表成功、301跳轉(zhuǎn),、404找不到頁(yè)面,、502服務(wù)器錯(cuò)誤 2.響應(yīng)頭如內(nèi)容類型、內(nèi)容長(zhǎng)度,、服務(wù)器信息,、設(shè)置Cookie等等 3.響應(yīng)體最主要的部分,包含了請(qǐng)求資源的內(nèi)容,,如網(wǎng)頁(yè)HTML,、圖片二進(jìn)制數(shù)據(jù)等 五、抓取的數(shù)據(jù)類型1.網(wǎng)頁(yè)文本如HTML文檔,、Json格式文本等 2.圖片獲取到的是二進(jìn)制文件,,保存為圖片格式 3.視頻同為二進(jìn)制文件,保存為視頻格式即可 4.其他數(shù)據(jù)只要是能請(qǐng)求到的,,都能獲取 六,、解析方式1.直接處理2.Json解析3.正則表達(dá)式4.BeautifulSoup5.PyQuery6.Path七、JavaScript渲染問(wèn)題1.分析Ajax請(qǐng)求2.Selenium/WebDriver3.Splash4.PyV85.Ghost八,、數(shù)據(jù)得保存1.文本純文本,、Json、Xml等…… 2.關(guān)系型數(shù)據(jù)庫(kù)如MySQL,、Oracle,、SQL Server等具有結(jié)構(gòu)化表結(jié)構(gòu)形式存儲(chǔ) 3.非關(guān)系型數(shù)據(jù)庫(kù)如MongoDB、Redis等Key-Value形式存儲(chǔ) 4.二進(jìn)制文件如圖片,、視頻,、音頻等等直接保存成特定格式即可 |
|