爬蟲的基本流程

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

網(wǎng)絡(luò)爬蟲的基本工作流程如下:

  • 首先選取一部分精心挑選的種子URL

  • 將種子URL加入任務(wù)隊(duì)列

  • 從待抓取URL隊(duì)列中取出待抓取的URL,解析DNS,并且得到主機(jī)的ip,并將URL對(duì)應(yīng)的網(wǎng)頁(yè)下載下來(lái),存儲(chǔ)進(jìn)已下載網(wǎng)頁(yè)庫(kù)中。此外,將這些URL放進(jìn)已抓取URL隊(duì)列。

  • 分析已抓取URL隊(duì)列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。

  • 解析下載下來(lái)的網(wǎng)頁(yè),將需要的數(shù)據(jù)解析出來(lái)。

  • 數(shù)據(jù)持久話,保存至數(shù)據(jù)庫(kù)中。

爬蟲的抓取策略

在爬蟲系統(tǒng)中,待抓取URL隊(duì)列是很重要的一部分。待抓取URL隊(duì)列中的URL以什么樣的順序排列也是一個(gè)很重要的問(wèn)題,因?yàn)檫@涉及到先抓取那個(gè)頁(yè)面,后抓取哪個(gè)頁(yè)面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點(diǎn)介紹幾種常見(jiàn)的抓取策略:

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

  • 深度優(yōu)先策略(DFS)
    深度優(yōu)先策略是指爬蟲從某個(gè)URL開(kāi)始,一個(gè)鏈接一個(gè)鏈接的爬取下去,直到處理完了某個(gè)鏈接所在的所有線路,才切換到其它的線路。
    此時(shí)抓取順序?yàn)椋篈 -> B -> C -> D -> E -> F -> G -> H -> I -> J

  • 廣度優(yōu)先策略(BFS)
    寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁(yè)中發(fā)現(xiàn)的鏈接直接插入待抓取URL隊(duì)列的末尾。也就是指網(wǎng)絡(luò)爬蟲會(huì)先抓取起始網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè),然后再選擇其中的一個(gè)鏈接網(wǎng)頁(yè),繼續(xù)抓取在此網(wǎng)頁(yè)中鏈接的所有網(wǎng)頁(yè)。
    此時(shí)抓取順序?yàn)椋篈 -> B -> E -> G -> H -> I -> C -> F -> J -> D

了解了爬蟲的工作流程和爬取策略后,就可以動(dòng)手實(shí)現(xiàn)一個(gè)爬蟲了!那么在python里怎么實(shí)現(xiàn)呢?

技術(shù)棧

  • requests 人性化的請(qǐng)求發(fā)送

  • Bloom Filter 布隆過(guò)濾器,用于判重

  • XPath 解析HTML內(nèi)容

  • murmurhash

  • Anti crawler strategy 反爬蟲策略

  • MySQL 用戶數(shù)據(jù)存儲(chǔ)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式