- Python基礎(chǔ)語(yǔ)法學(xué)習(xí)(基礎(chǔ)知識(shí))
- HTML頁(yè)面的內(nèi)容抓燃烧ぁ(數(shù)據(jù)抓绕拷摺)
- HTML頁(yè)面的數(shù)據(jù)提仁永帧(數(shù)據(jù)清洗)
- Scrapy框架以及scrapy-redis分布式策略(第三方框架)
- 爬蟲(Spider)男摧、反爬蟲(Anti-Spider)蔬墩、反反爬蟲(Anti-Anti-Spider)之間的斗爭(zhēng)....
通用爬蟲和聚焦爬蟲
根據(jù)使用場(chǎng)景,網(wǎng)絡(luò)爬蟲可分為 通用爬蟲 和 聚焦爬蟲 兩種.
通用爬蟲
通用網(wǎng)絡(luò)爬蟲 是 捜索引擎抓取系統(tǒng)(Baidu彩倚、Google筹我、Yahoo等)的重要組成部分扶平。主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁(yè)下載到本地帆离,形成一個(gè)互聯(lián)網(wǎng)內(nèi)容的鏡像備份。
通用搜索引擎(Search Engine)工作原理
通用網(wǎng)絡(luò)爬蟲 從互聯(lián)網(wǎng)中搜集網(wǎng)頁(yè)结澄,采集信息哥谷,這些網(wǎng)頁(yè)信息用于為搜索引擎建立索引從而提供支持,它決定著整個(gè)引擎系統(tǒng)的內(nèi)容是否豐富麻献,信息是否即時(shí)们妥,因此其性能的優(yōu)劣直接影響著搜索引擎的效果。
第一步:抓取網(wǎng)頁(yè)
搜索引擎網(wǎng)絡(luò)爬蟲的基本工作流程如下:
1.首先選取一部分的種子URL勉吻,將這些URL放入待抓取URL隊(duì)列监婶;
2.取出待抓取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)....
搜索引擎如何獲取一個(gè)新網(wǎng)站的URL:
- 新網(wǎng)站向搜索引擎主動(dòng)提交網(wǎng)址:(如百度http://zhanzhang.baidu.com/linksubmit/url)
- 在其他網(wǎng)站上設(shè)置新網(wǎng)站外鏈(盡可能處于搜索引擎爬蟲爬取范圍)
- 搜索引擎和DNS解析服務(wù)商(如DNSPod等)合作鱼冀,新網(wǎng)站域名將被迅速抓取。
但是搜索引擎蜘蛛的爬行是被輸入了一定的規(guī)則的悠就,它需要遵從一些命令或文件的內(nèi)容千绪,如標(biāo)注為nofollow
的鏈接,或者是Robots
協(xié)議梗脾。
Robots協(xié)議(也叫爬蟲協(xié)議翘紊、機(jī)器人協(xié)議等),全稱是“網(wǎng)絡(luò)爬蟲排除標(biāo)準(zhǔn)”(Robots Exclusion Protocol)藐唠,網(wǎng)站通過(guò)Robots協(xié)議告訴搜索引擎哪些頁(yè)面可以抓取帆疟,哪些頁(yè)面不能抓取鹉究,例如:
淘寶網(wǎng):https://www.taobao.com/robots.txt
騰訊網(wǎng): http://www.qq.com/robots.txt
第二步:數(shù)據(jù)存儲(chǔ)
搜索引擎通過(guò)爬蟲爬取到的網(wǎng)頁(yè),將數(shù)據(jù)存入原始頁(yè)面數(shù)據(jù)庫(kù)踪宠。其中的頁(yè)面數(shù)據(jù)與用戶瀏覽器得到的HTML是完全一樣的自赔。
搜索引擎蜘蛛在抓取頁(yè)面時(shí),也做一定的重復(fù)內(nèi)容檢測(cè)柳琢,一旦遇到訪問(wèn)權(quán)重很低的網(wǎng)站上有大量抄襲绍妨、采集或者復(fù)制的內(nèi)容,很可能就不再爬行.
第三步:預(yù)處理
搜索引擎將爬蟲抓取回來(lái)的頁(yè)面柬脸,進(jìn)行各種步驟的預(yù)處理他去。
- 提取文字
- 中文分詞
- 消除噪音(比如版權(quán)聲明文字、導(dǎo)航條倒堕、廣告等……)
- 索引處理
- 鏈接關(guān)系計(jì)算
- 特殊文件處理
- ....
除了HTML文件外灾测,搜索引擎通常還能抓取和索引以文字為基礎(chǔ)的多種文件類型,如 PDF垦巴、Word媳搪、WPS、XLS骤宣、PPT秦爆、TXT 文件等。我們?cè)谒阉鹘Y(jié)果中也經(jīng)常會(huì)看到這些文件類型憔披。
但搜索引擎還不能處理圖片等限、視頻、Flash 這類非文字內(nèi)容芬膝,也不能執(zhí)行腳本和程序望门。
第四步:提供檢索服務(wù),網(wǎng)站排名
搜索引擎在對(duì)信息進(jìn)行組織和處理后蔗候,為用戶提供關(guān)鍵字檢索服務(wù)怒允,將用戶檢索相關(guān)的信息展示給用戶。
同時(shí)會(huì)根據(jù)頁(yè)面的PageRank值(鏈接的訪問(wèn)量排名)來(lái)進(jìn)行網(wǎng)站排名锈遥,這樣Rank值高的網(wǎng)站在搜索結(jié)果中會(huì)排名較前纫事,當(dāng)然也可以直接使用 Money 購(gòu)買搜索引擎網(wǎng)站排名,簡(jiǎn)單粗暴所灸。
但是丽惶,這些通用性搜索引擎也存在著一定的局限性:
通用搜索引擎所返回的結(jié)果都是網(wǎng)頁(yè),而大多情況下爬立,網(wǎng)頁(yè)里90%的內(nèi)容對(duì)用戶來(lái)說(shuō)都是無(wú)用的钾唬。
不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,搜索引擎無(wú)法提供針對(duì)具體某個(gè)用戶的搜索結(jié)果抡秆。
萬(wàn)維網(wǎng)數(shù)據(jù)形式的豐富和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展奕巍,圖片、數(shù)據(jù)庫(kù)儒士、音頻的止、視頻多媒體等不同數(shù)據(jù)大量出現(xiàn),通用搜索引擎對(duì)這些文件無(wú)能為力着撩,不能很好地發(fā)現(xiàn)和獲取诅福。
通用搜索引擎大多提供基于關(guān)鍵字的檢索,難以支持根據(jù)語(yǔ)義信息提出的查詢拖叙,無(wú)法準(zhǔn)確理解用戶的具體需求氓润。
針對(duì)這些情況,聚焦爬蟲技術(shù)得以廣泛使用薯鳍。
聚焦爬蟲
聚焦爬蟲咖气,是"面向特定主題需求"的一種網(wǎng)絡(luò)爬蟲程序,它與通用搜索引擎爬蟲的區(qū)別在于: 聚焦爬蟲在實(shí)施網(wǎng)頁(yè)抓取時(shí)會(huì)對(duì)內(nèi)容進(jìn)行處理篩選辐啄,盡量保證只抓取與需求相關(guān)的網(wǎng)頁(yè)信息采章。
而我們今后要學(xué)習(xí)的运嗜,就是聚焦爬蟲壶辜。