亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

web技術(shù)

web技術(shù)

java爬蟲(chóng)技術(shù)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 297 次瀏覽 ? 2020-06-27 08:00 ? 來(lái)自相關(guān)話(huà)題

  htmlparse
  jsoup
  HeritrixNutch
  java 抓取網(wǎng)頁(yè)內容
  爬蟲(chóng)
  java 爬蟲(chóng)比較
  Nutch
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介:
  Apache的子項目之一,屬于Lucene項目下的子項目。
  Nutch是一個(gè)基于Lucene,類(lèi)似Google的完整網(wǎng)路搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類(lèi)似Eclipse的插件機制保證了系統的可客戶(hù)化,而且很容易集成到自己的應用之中。
  Larbin
  開(kāi)發(fā)語(yǔ)言:C++
  簡(jiǎn)介
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。
  Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。
  latbin最初的設計也是根據設計簡(jiǎn)單而且高度可配置性的原則,因此我們可以看見(jiàn),一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè),非常高效。
  Heritrix
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介
  與Nutch比較
  和 Nutch。二者均為Java開(kāi)源框架,Heritrix是 SourceForge上的開(kāi)源產(chǎn)品,Nutch為Apache的一個(gè)子項目,它們都叫做網(wǎng)絡(luò )爬蟲(chóng)/蜘蛛( Web Crawler),它們實(shí)現的原理基本一致:深度遍歷網(wǎng)站的資源,將這種資源抓取到本地,使用的技巧都是剖析網(wǎng)站每一個(gè)有效的URI,并遞交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。
  Heritrix是個(gè) “archival crawler” — 用來(lái)獲取完整的、精確的、站點(diǎn)內容的深度復制。包括獲取圖象以及其他非文本內容。抓取并儲存相關(guān)的內容。對內容來(lái)者不拒,不對頁(yè)面進(jìn)行內容上的更改。重新爬行對相同的URL不針對原先的進(jìn)行替換。爬蟲(chóng)通過(guò)Web用戶(hù)界面啟動(dòng)、監控、調整,允許彈性的定義要獲取的URL。
  二者的差別:
  Nutch 只獲取并保存可索引的內容。Heritrix則是照單全收。力求保存頁(yè)面原樣
  Nutch 可以修剪內容,或者對內容格式進(jìn)行轉換。
  Nutch 保存內容為數據庫優(yōu)化格式以便之后索引;刷新替換舊的內容。而Heritrix是添加(追加)新的內容。
  Nutch 從命令行運行、控制。Heritrix有 Web 控制管理界面。
  Nutch 的訂制能力不夠強,不過(guò)現今早已有了一定改進(jìn)。Heritrix可控制的參數更多。
  Heritrix提供的功能沒(méi)有nutch多,有點(diǎn)整站下載的氣味。既沒(méi)有索引又沒(méi)有解析,甚至對于重復爬取URL都處理不是挺好。
  Heritrix的功能強悍 但是配置上去卻有點(diǎn)麻煩。
  其他網(wǎng)路爬蟲(chóng)介紹:
  WebLech
  WebLech是一個(gè)功能強悍的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下載web站點(diǎn)并才能盡可能模仿標準Web瀏覽器的行為。WebLech有一個(gè)功能控制臺并采用多線(xiàn)程操作。
  Arale
  Arale主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。Arale才能下載整個(gè)web站點(diǎn)或來(lái)自web站點(diǎn)的個(gè)別資源。Arale能夠夠把動(dòng)態(tài)頁(yè)面映射成靜態(tài)頁(yè)面。
  J-Spider
  J-Spider:是一個(gè)完全可配置和訂制的Web Spider引擎.你可以借助它來(lái)檢測網(wǎng)站的錯誤(內在的服務(wù)器錯誤等),網(wǎng)站內外部鏈接檢測java爬蟲(chóng)技術(shù),分析網(wǎng)站的結構(可創(chuàng )建一個(gè)網(wǎng)站地圖),下載整個(gè)Web站點(diǎn),你還可以寫(xiě)一個(gè)JSpider插件來(lái)擴充你所須要的功能。
  spindle
  spindle 是一個(gè)建立在Lucene工具包之上的Web索引/搜索工具.它包括一個(gè)用于創(chuàng )建索引的HTTP spider和一個(gè)用于搜索這種索引的搜索類(lèi)。spindle項目提供了一組JSP標簽庫促使這些基于JSP的站點(diǎn)不需要開(kāi)發(fā)任何Java類(lèi)能夠夠降低搜索功能。
  Arachnid
  Arachnid: 是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  LARM
  LARM才能為Jakarta Lucene搜索引擎框架的用戶(hù)提供一個(gè)純Java的搜索解決方案。它包含才能為文件,數據庫表格構建索引的方式和為Web站點(diǎn)建索引的爬蟲(chóng)。
  JoBo
  JoBo 是一個(gè)用于下載整個(gè)Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè)Web Spider。與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充form(如:自動(dòng)登入)和使用cookies來(lái)處理session。JoBo還有靈活的下載規則(如:通過(guò)網(wǎng)頁(yè)的URL,大小,MIME類(lèi)型等)來(lái)限制下載。
  snoics-reptile
  snoics-reptile是用純Java開(kāi)發(fā)的,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以使用配制文件中提供的URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò)GET的方法獲取到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如:圖片、flash、mp3、zip、rar、exe等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng)站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到web服務(wù)器(如:Apache)中,就可以實(shí)現完整的網(wǎng)站鏡像。
  Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  spiderpy
  spiderpy是一個(gè)基于Python編碼的一個(gè)開(kāi)源web爬蟲(chóng)工具,允許用戶(hù)搜集文件和搜索網(wǎng)站,并有一個(gè)可配置的界面。
  The Spider Web Network Xoops Mod Team
  pider Web Network Xoops Mod是一個(gè)Xoops下的模塊java爬蟲(chóng)技術(shù),完全由PHP語(yǔ)言實(shí)現。
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架, 沒(méi)有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務(wù), 支持N機分布式下載, 支持網(wǎng)站定向下載(需要配置hispiderd.iniwhitelist). 查看全部

  htmlparse
  jsoup
  HeritrixNutch
  java 抓取網(wǎng)頁(yè)內容
  爬蟲(chóng)
  java 爬蟲(chóng)比較
  Nutch
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介:
  Apache的子項目之一,屬于Lucene項目下的子項目。
  Nutch是一個(gè)基于Lucene,類(lèi)似Google的完整網(wǎng)路搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類(lèi)似Eclipse的插件機制保證了系統的可客戶(hù)化,而且很容易集成到自己的應用之中。
  Larbin
  開(kāi)發(fā)語(yǔ)言:C++
  簡(jiǎn)介
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。
  Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。
  latbin最初的設計也是根據設計簡(jiǎn)單而且高度可配置性的原則,因此我們可以看見(jiàn),一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè),非常高效。
  Heritrix
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介
  與Nutch比較
  和 Nutch。二者均為Java開(kāi)源框架,Heritrix是 SourceForge上的開(kāi)源產(chǎn)品,Nutch為Apache的一個(gè)子項目,它們都叫做網(wǎng)絡(luò )爬蟲(chóng)/蜘蛛( Web Crawler),它們實(shí)現的原理基本一致:深度遍歷網(wǎng)站的資源,將這種資源抓取到本地,使用的技巧都是剖析網(wǎng)站每一個(gè)有效的URI,并遞交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。
  Heritrix是個(gè) “archival crawler” — 用來(lái)獲取完整的、精確的、站點(diǎn)內容的深度復制。包括獲取圖象以及其他非文本內容。抓取并儲存相關(guān)的內容。對內容來(lái)者不拒,不對頁(yè)面進(jìn)行內容上的更改。重新爬行對相同的URL不針對原先的進(jìn)行替換。爬蟲(chóng)通過(guò)Web用戶(hù)界面啟動(dòng)、監控、調整,允許彈性的定義要獲取的URL。
  二者的差別:
  Nutch 只獲取并保存可索引的內容。Heritrix則是照單全收。力求保存頁(yè)面原樣
  Nutch 可以修剪內容,或者對內容格式進(jìn)行轉換。
  Nutch 保存內容為數據庫優(yōu)化格式以便之后索引;刷新替換舊的內容。而Heritrix是添加(追加)新的內容。
  Nutch 從命令行運行、控制。Heritrix有 Web 控制管理界面。
  Nutch 的訂制能力不夠強,不過(guò)現今早已有了一定改進(jìn)。Heritrix可控制的參數更多。
  Heritrix提供的功能沒(méi)有nutch多,有點(diǎn)整站下載的氣味。既沒(méi)有索引又沒(méi)有解析,甚至對于重復爬取URL都處理不是挺好。
  Heritrix的功能強悍 但是配置上去卻有點(diǎn)麻煩。
  其他網(wǎng)路爬蟲(chóng)介紹:
  WebLech
  WebLech是一個(gè)功能強悍的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下載web站點(diǎn)并才能盡可能模仿標準Web瀏覽器的行為。WebLech有一個(gè)功能控制臺并采用多線(xiàn)程操作。
  Arale
  Arale主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。Arale才能下載整個(gè)web站點(diǎn)或來(lái)自web站點(diǎn)的個(gè)別資源。Arale能夠夠把動(dòng)態(tài)頁(yè)面映射成靜態(tài)頁(yè)面。
  J-Spider
  J-Spider:是一個(gè)完全可配置和訂制的Web Spider引擎.你可以借助它來(lái)檢測網(wǎng)站的錯誤(內在的服務(wù)器錯誤等),網(wǎng)站內外部鏈接檢測java爬蟲(chóng)技術(shù),分析網(wǎng)站的結構(可創(chuàng )建一個(gè)網(wǎng)站地圖),下載整個(gè)Web站點(diǎn),你還可以寫(xiě)一個(gè)JSpider插件來(lái)擴充你所須要的功能。
  spindle
  spindle 是一個(gè)建立在Lucene工具包之上的Web索引/搜索工具.它包括一個(gè)用于創(chuàng )建索引的HTTP spider和一個(gè)用于搜索這種索引的搜索類(lèi)。spindle項目提供了一組JSP標簽庫促使這些基于JSP的站點(diǎn)不需要開(kāi)發(fā)任何Java類(lèi)能夠夠降低搜索功能。
  Arachnid
  Arachnid: 是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  LARM
  LARM才能為Jakarta Lucene搜索引擎框架的用戶(hù)提供一個(gè)純Java的搜索解決方案。它包含才能為文件,數據庫表格構建索引的方式和為Web站點(diǎn)建索引的爬蟲(chóng)。
  JoBo
  JoBo 是一個(gè)用于下載整個(gè)Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè)Web Spider。與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充form(如:自動(dòng)登入)和使用cookies來(lái)處理session。JoBo還有靈活的下載規則(如:通過(guò)網(wǎng)頁(yè)的URL,大小,MIME類(lèi)型等)來(lái)限制下載。
  snoics-reptile
  snoics-reptile是用純Java開(kāi)發(fā)的,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以使用配制文件中提供的URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò)GET的方法獲取到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如:圖片、flash、mp3、zip、rar、exe等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng)站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到web服務(wù)器(如:Apache)中,就可以實(shí)現完整的網(wǎng)站鏡像。
  Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  spiderpy
  spiderpy是一個(gè)基于Python編碼的一個(gè)開(kāi)源web爬蟲(chóng)工具,允許用戶(hù)搜集文件和搜索網(wǎng)站,并有一個(gè)可配置的界面。
  The Spider Web Network Xoops Mod Team
  pider Web Network Xoops Mod是一個(gè)Xoops下的模塊java爬蟲(chóng)技術(shù),完全由PHP語(yǔ)言實(shí)現。
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架, 沒(méi)有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務(wù), 支持N機分布式下載, 支持網(wǎng)站定向下載(需要配置hispiderd.iniwhitelist).

爬蟲(chóng)工具匯總

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 319 次瀏覽 ? 2020-06-25 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  爬蟲(chóng)工具匯總 Heritrix Heritrix 是一個(gè)開(kāi)源,可擴充的 web爬蟲(chóng)項目。 Heritrix 設計成嚴格依照 robots.txt 文件的排除指示和 META robots 標簽。 WebSPHINX WebSPHIN是X 一個(gè) Java 類(lèi)包和 Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。 Web爬蟲(chóng) ( 也叫作 機器人或蜘蛛 ) 是可以手動(dòng)瀏覽與處理 Web頁(yè)面的程序。 WebSPHIN由X 兩部份組成 : 爬蟲(chóng)工作平臺和 WebSPHIN類(lèi)X 包。 ~rcm/websphinx/ WebLech WebLech是一個(gè)功能強悍的 Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下 載 web站點(diǎn)并才能盡可能模仿標準 Web瀏覽器的行為。 WebLech有一個(gè)功能控制臺 并采用多線(xiàn)程操作。 Arale Arale 主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。 Arale 能夠下載整個(gè) web站點(diǎn)或來(lái)自 web站點(diǎn)的個(gè)別資源。 Arale 還能夠把動(dòng)態(tài)頁(yè) 面映射成靜態(tài)頁(yè)面。 J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn)爬蟲(chóng)軟件下載,你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。
   spindle spindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè) 用于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。 spindle 項目提 供了一組 JSP標簽庫促使這些基于 JSP 的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低 搜索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎框架的用戶(hù)提供一個(gè)純 Java 的搜索解決 方案。它包含才能為文件,數據庫表格構建索引的方式和為 Web站點(diǎn)建索引的爬 蟲(chóng)。 JoBo JoBo 是一個(gè)用于下載整個(gè) Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè) Web Spider 。
   與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充 form( 如: 自動(dòng)登入 ) 和使用 cookies 來(lái)處理 session 。JoBo 還有靈活的下載規則 ( 如: 通過(guò)網(wǎng)頁(yè)的 URL,大小,MIME類(lèi)型等 ) 來(lái)限制下載。 snoics-reptile snoics -reptile 是用純 Java 開(kāi)發(fā)的爬蟲(chóng)軟件下載,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以讓 用配制文件中提供的 URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò) GET的方法獲取 到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如 : 圖片、 flash 、 mp3、 zip 、 rar 、exe 等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng) 站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到 web服務(wù)器 ( 如:Apache) 中,就可 以實(shí)現完整的網(wǎng)站鏡像。 Web-Harvest Web-Harvest 是一個(gè) Java 開(kāi)源 Web數據抽取工具。它還能搜集指定的 Web頁(yè)面 并從這種頁(yè)面中提取有用的數據。 Web-Harvest 主要是運用了象 XSLT,XQuery,正則 表達式等這種技術(shù)來(lái)實(shí)現對 text/xml 的操作。
   spiderpy spiderpy 是一個(gè)基于 Python 編碼的一個(gè)開(kāi)源 web爬蟲(chóng)工具,允許用戶(hù)搜集文 件和搜索網(wǎng)站,并有一個(gè)可配置的界面。 The Spider Web Network Xoops Mod Team pider Web Network Xoops Mod 是 一個(gè) Xoops 下的模塊,完全由 PHP語(yǔ)言實(shí)現。 Fetchgals Fetchgals 是一個(gè)基于 perl 多線(xiàn)程的 Web爬蟲(chóng),通過(guò) Tags 來(lái)搜索淫穢圖片。 larbin larbin 是個(gè)基于 C++的 web爬蟲(chóng)工具,擁有便于操作的界面,不過(guò)只能跑在 LINUX下,在一臺普通 PC下 larbin 每天可以爬 5 百萬(wàn)個(gè)頁(yè)面 ( 當然啦,需要擁有 良好的網(wǎng)路 ) J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn),你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。 spindle pindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè)用 于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。
   spindle 項目提供 了一組 JSP標簽庫促使這些基于 JSP的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低搜 索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎 查看全部

  
  爬蟲(chóng)工具匯總 Heritrix Heritrix 是一個(gè)開(kāi)源,可擴充的 web爬蟲(chóng)項目。 Heritrix 設計成嚴格依照 robots.txt 文件的排除指示和 META robots 標簽。 WebSPHINX WebSPHIN是X 一個(gè) Java 類(lèi)包和 Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。 Web爬蟲(chóng) ( 也叫作 機器人或蜘蛛 ) 是可以手動(dòng)瀏覽與處理 Web頁(yè)面的程序。 WebSPHIN由X 兩部份組成 : 爬蟲(chóng)工作平臺和 WebSPHIN類(lèi)X 包。 ~rcm/websphinx/ WebLech WebLech是一個(gè)功能強悍的 Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下 載 web站點(diǎn)并才能盡可能模仿標準 Web瀏覽器的行為。 WebLech有一個(gè)功能控制臺 并采用多線(xiàn)程操作。 Arale Arale 主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。 Arale 能夠下載整個(gè) web站點(diǎn)或來(lái)自 web站點(diǎn)的個(gè)別資源。 Arale 還能夠把動(dòng)態(tài)頁(yè) 面映射成靜態(tài)頁(yè)面。 J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn)爬蟲(chóng)軟件下載,你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。
   spindle spindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè) 用于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。 spindle 項目提 供了一組 JSP標簽庫促使這些基于 JSP 的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低 搜索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎框架的用戶(hù)提供一個(gè)純 Java 的搜索解決 方案。它包含才能為文件,數據庫表格構建索引的方式和為 Web站點(diǎn)建索引的爬 蟲(chóng)。 JoBo JoBo 是一個(gè)用于下載整個(gè) Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè) Web Spider 。
   與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充 form( 如: 自動(dòng)登入 ) 和使用 cookies 來(lái)處理 session 。JoBo 還有靈活的下載規則 ( 如: 通過(guò)網(wǎng)頁(yè)的 URL,大小,MIME類(lèi)型等 ) 來(lái)限制下載。 snoics-reptile snoics -reptile 是用純 Java 開(kāi)發(fā)的爬蟲(chóng)軟件下載,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以讓 用配制文件中提供的 URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò) GET的方法獲取 到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如 : 圖片、 flash 、 mp3、 zip 、 rar 、exe 等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng) 站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到 web服務(wù)器 ( 如:Apache) 中,就可 以實(shí)現完整的網(wǎng)站鏡像。 Web-Harvest Web-Harvest 是一個(gè) Java 開(kāi)源 Web數據抽取工具。它還能搜集指定的 Web頁(yè)面 并從這種頁(yè)面中提取有用的數據。 Web-Harvest 主要是運用了象 XSLT,XQuery,正則 表達式等這種技術(shù)來(lái)實(shí)現對 text/xml 的操作。
   spiderpy spiderpy 是一個(gè)基于 Python 編碼的一個(gè)開(kāi)源 web爬蟲(chóng)工具,允許用戶(hù)搜集文 件和搜索網(wǎng)站,并有一個(gè)可配置的界面。 The Spider Web Network Xoops Mod Team pider Web Network Xoops Mod 是 一個(gè) Xoops 下的模塊,完全由 PHP語(yǔ)言實(shí)現。 Fetchgals Fetchgals 是一個(gè)基于 perl 多線(xiàn)程的 Web爬蟲(chóng),通過(guò) Tags 來(lái)搜索淫穢圖片。 larbin larbin 是個(gè)基于 C++的 web爬蟲(chóng)工具,擁有便于操作的界面,不過(guò)只能跑在 LINUX下,在一臺普通 PC下 larbin 每天可以爬 5 百萬(wàn)個(gè)頁(yè)面 ( 當然啦,需要擁有 良好的網(wǎng)路 ) J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn),你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。 spindle pindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè)用 于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。
   spindle 項目提供 了一組 JSP標簽庫促使這些基于 JSP的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低搜 索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎

網(wǎng)絡(luò )爬蟲(chóng)與Web安全

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 319 次瀏覽 ? 2020-06-11 08:02 ? 來(lái)自相關(guān)話(huà)題

  網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
  網(wǎng)絡(luò )爬蟲(chóng)與Web安全
  文/H3C攻守團隊
  網(wǎng)絡(luò )爬蟲(chóng)概述
  網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
  傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
  網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
  由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
  1)搜索目錄列表
  互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
  2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
  大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
  3)搜索管理員登入頁(yè)面
  許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
  4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
  互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
  因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
  前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
  1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
  2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
  3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
  /cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
  圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
  如何應對爬蟲(chóng)的安全恐嚇
  由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
  限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
  1) 設置robots.txt文件
  限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
  2) User Agent辨識與限制
  要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
  3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
  對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
  結束語(yǔ)
  網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部

  網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
  網(wǎng)絡(luò )爬蟲(chóng)與Web安全
  文/H3C攻守團隊
  網(wǎng)絡(luò )爬蟲(chóng)概述
  網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
  傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
  網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
  由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
  1)搜索目錄列表
  互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
  2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
  大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
  3)搜索管理員登入頁(yè)面
  許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
  4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
  互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
  因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
  前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
  1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
  2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
  3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
  /cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
  圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
  如何應對爬蟲(chóng)的安全恐嚇
  由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
  限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
  1) 設置robots.txt文件
  限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
  2) User Agent辨識與限制
  要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
  3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
  對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
  結束語(yǔ)
  網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。

什么是網(wǎng)絡(luò )爬蟲(chóng)?網(wǎng)絡(luò )爬蟲(chóng)有哪些用?

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 303 次瀏覽 ? 2020-06-01 08:01 ? 來(lái)自相關(guān)話(huà)題

  在大數據浪潮中,最值錢(qián)的就是數據,企業(yè)為了獲得數據,處理數據,理解數據耗費了巨大代價(jià),使用網(wǎng)絡(luò )爬蟲(chóng)可以最有效的獲取數據。
  什么是爬蟲(chóng)?
  網(wǎng)絡(luò )蜘蛛(Web spider)也叫網(wǎng)絡(luò )爬蟲(chóng)(Web crawler)什么是網(wǎng)絡(luò )爬蟲(chóng),螞蟻(ant),自動(dòng)檢索工具(automatic indexer),或者(在FOAF軟件概念中)網(wǎng)絡(luò )疾走(WEB scutter),是一種“自動(dòng)化瀏覽網(wǎng)路”的程序,或者說(shuō)是一種網(wǎng)路機器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類(lèi)似網(wǎng)站,以獲取或更新那些網(wǎng)站的內容和檢索方法。它們可以手動(dòng)采集所有其才能訪(fǎng)問(wèn)到的頁(yè)面內容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁(yè)面),而促使用戶(hù)能更快的檢索到她們須要的信息。
  最常見(jiàn)的就是互聯(lián)網(wǎng)搜索引擎,它們借助網(wǎng)路爬蟲(chóng)手動(dòng)采集所有才能訪(fǎng)問(wèn)到的頁(yè)面內容,以獲取或更新那些網(wǎng)站的內容和檢索方法。在網(wǎng)路爬蟲(chóng)的系統框架中,主過(guò)程由控制器、解析器、資源庫三部份組成??刂破鞯闹饕ぷ魇秦撠熃o多線(xiàn)程中的各個(gè)爬蟲(chóng)線(xiàn)程分配工作任務(wù)。解析器的主要工作是
  下載信息,將信息中對用戶(hù)沒(méi)有意義的內容(比如網(wǎng)頁(yè)代碼)處理掉。資源庫是拿來(lái)儲存下載到的數據資源,并對其構建索引。
  假如你想要每小時(shí)抓取一次網(wǎng)易新聞,那么你就要訪(fǎng)問(wèn)網(wǎng)易并做一個(gè)數據懇求,得到html格式的網(wǎng)頁(yè),然后通過(guò)網(wǎng)路爬蟲(chóng)的解析器進(jìn)行過(guò)濾,最后保存入庫。
  爬蟲(chóng)能做哪些?
  可以創(chuàng )建搜索引擎(Google,百度)
  可以拿來(lái)?yè)尰疖?chē)票
  帶逛
  簡(jiǎn)單來(lái)講只要瀏覽器能打開(kāi)的,都可以用爬蟲(chóng)實(shí)現
  網(wǎng)絡(luò )爬蟲(chóng)的分類(lèi)?
  網(wǎng)絡(luò )爬蟲(chóng)可以分為通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)和深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL(網(wǎng)絡(luò )上每一個(gè)文件都有一個(gè)地址,即URL) 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是只爬行與主題相關(guān)網(wǎng)路資源的爬蟲(chóng)。它極大地節約了硬件和網(wǎng)路資源,保存的數據也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求。
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是指只爬行新形成的或則已然發(fā)生變化數據的爬蟲(chóng),它還能在一定程度上保證所爬行的數據是盡可能新的,并不重新下載沒(méi)有發(fā)生變化的數據,可有效降低數據下載量,及時(shí)更新已爬行的數據,減小時(shí)間和空間上的花費。
  深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)則可以抓取到深層網(wǎng)頁(yè)的數據。一般網(wǎng)路頁(yè)面分為表層網(wǎng)頁(yè)和深層網(wǎng)頁(yè)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面什么是網(wǎng)絡(luò )爬蟲(chóng),而深層頁(yè)面是只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的頁(yè)面,例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于深層網(wǎng)頁(yè)。
  學(xué)習爬蟲(chóng)技術(shù)勢在必行:在現今競爭的信息化社會(huì )中,如何借助數據剖析使自己站在信息不對稱(chēng)的一方,保持競爭優(yōu)勢,是數字工作者的必備技能。不過(guò)想飛之前總得先學(xué)會(huì )慢跑,分析數據之前先首要學(xué)會(huì )爬數據與處理數據,才有有事半功倍之效。
  【全文完】 查看全部

  在大數據浪潮中,最值錢(qián)的就是數據,企業(yè)為了獲得數據,處理數據,理解數據耗費了巨大代價(jià),使用網(wǎng)絡(luò )爬蟲(chóng)可以最有效的獲取數據。
  什么是爬蟲(chóng)?
  網(wǎng)絡(luò )蜘蛛(Web spider)也叫網(wǎng)絡(luò )爬蟲(chóng)(Web crawler)什么是網(wǎng)絡(luò )爬蟲(chóng),螞蟻(ant),自動(dòng)檢索工具(automatic indexer),或者(在FOAF軟件概念中)網(wǎng)絡(luò )疾走(WEB scutter),是一種“自動(dòng)化瀏覽網(wǎng)路”的程序,或者說(shuō)是一種網(wǎng)路機器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類(lèi)似網(wǎng)站,以獲取或更新那些網(wǎng)站的內容和檢索方法。它們可以手動(dòng)采集所有其才能訪(fǎng)問(wèn)到的頁(yè)面內容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁(yè)面),而促使用戶(hù)能更快的檢索到她們須要的信息。
  最常見(jiàn)的就是互聯(lián)網(wǎng)搜索引擎,它們借助網(wǎng)路爬蟲(chóng)手動(dòng)采集所有才能訪(fǎng)問(wèn)到的頁(yè)面內容,以獲取或更新那些網(wǎng)站的內容和檢索方法。在網(wǎng)路爬蟲(chóng)的系統框架中,主過(guò)程由控制器、解析器、資源庫三部份組成??刂破鞯闹饕ぷ魇秦撠熃o多線(xiàn)程中的各個(gè)爬蟲(chóng)線(xiàn)程分配工作任務(wù)。解析器的主要工作是
  下載信息,將信息中對用戶(hù)沒(méi)有意義的內容(比如網(wǎng)頁(yè)代碼)處理掉。資源庫是拿來(lái)儲存下載到的數據資源,并對其構建索引。
  假如你想要每小時(shí)抓取一次網(wǎng)易新聞,那么你就要訪(fǎng)問(wèn)網(wǎng)易并做一個(gè)數據懇求,得到html格式的網(wǎng)頁(yè),然后通過(guò)網(wǎng)路爬蟲(chóng)的解析器進(jìn)行過(guò)濾,最后保存入庫。
  爬蟲(chóng)能做哪些?
  可以創(chuàng )建搜索引擎(Google,百度)
  可以拿來(lái)?yè)尰疖?chē)票
  帶逛
  簡(jiǎn)單來(lái)講只要瀏覽器能打開(kāi)的,都可以用爬蟲(chóng)實(shí)現
  網(wǎng)絡(luò )爬蟲(chóng)的分類(lèi)?
  網(wǎng)絡(luò )爬蟲(chóng)可以分為通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)和深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL(網(wǎng)絡(luò )上每一個(gè)文件都有一個(gè)地址,即URL) 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是只爬行與主題相關(guān)網(wǎng)路資源的爬蟲(chóng)。它極大地節約了硬件和網(wǎng)路資源,保存的數據也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求。
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是指只爬行新形成的或則已然發(fā)生變化數據的爬蟲(chóng),它還能在一定程度上保證所爬行的數據是盡可能新的,并不重新下載沒(méi)有發(fā)生變化的數據,可有效降低數據下載量,及時(shí)更新已爬行的數據,減小時(shí)間和空間上的花費。
  深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)則可以抓取到深層網(wǎng)頁(yè)的數據。一般網(wǎng)路頁(yè)面分為表層網(wǎng)頁(yè)和深層網(wǎng)頁(yè)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面什么是網(wǎng)絡(luò )爬蟲(chóng),而深層頁(yè)面是只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的頁(yè)面,例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于深層網(wǎng)頁(yè)。
  學(xué)習爬蟲(chóng)技術(shù)勢在必行:在現今競爭的信息化社會(huì )中,如何借助數據剖析使自己站在信息不對稱(chēng)的一方,保持競爭優(yōu)勢,是數字工作者的必備技能。不過(guò)想飛之前總得先學(xué)會(huì )慢跑,分析數據之前先首要學(xué)會(huì )爬數據與處理數據,才有有事半功倍之效。
  【全文完】

基于C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 291 次瀏覽 ? 2020-05-28 08:01 ? 來(lái)自相關(guān)話(huà)題

  基于 C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現的研究綜述作者:xxx 指導老師:xxx摘要:本文歸納了網(wǎng)路爬蟲(chóng)的設計與實(shí)現方面的研究?jì)热?,概括了網(wǎng)路爬蟲(chóng)的定 摘要 義與爬取策略、網(wǎng)絡(luò )爬蟲(chóng)的體系結構、設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)身分的 識別等方面的觀(guān)點(diǎn),并總結了怎樣通過(guò)一個(gè)或多個(gè)給定的種子網(wǎng)站,將網(wǎng)站上相 應的網(wǎng)頁(yè)抓取出來(lái),并將其存入數據庫或文本文件中的研究成果。本文也強調了 如何通過(guò)解決傳統的通用搜索引擎在個(gè)別領(lǐng)域的局限性, 幫助人們愈加有效地提 取與借助互聯(lián)網(wǎng)信息,進(jìn)而提升人們在檢索信息效率方面的研究需求。最后,本 文提出了一個(gè)滿(mǎn)足用戶(hù)需求的網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)方案。 關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng) ;通用搜索引擎 ;互聯(lián)網(wǎng) 關(guān)鍵詞The Design and Implementation of Web Spider Based on C++Author:xxxTutor: xxx Abstract:This paper summarizes the research about the design and implementation of the web spider, summarizesthe view aboutthe definition of web spider, the crawling strategy of the web spider, the architecture of the web spider, the key issues to design the web spider and identification of the web spider ,and summarizes the research about how to catch the web-pages which links to the corresponding web site through one or more given seed site, and then stores it into a database or text file . The paper also points out how to solve the limitations of the Traditional General Search Engine in some areas , help people more effectively extract the information and make use of the Internet, then improve people’sresearch needs in the area of information retrieval. In the end, the paper proposesa web spider development planwhich can meet the user’s needs. Keywords:WebSpiders ;Tradition Universal Search Engine ; Internet隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息的提取與借助在人們的日常生活中越來(lái)越重要。
  搜索 引擎因為才能從廣袤的網(wǎng)路資源中給用戶(hù)提供對用戶(hù)有用的信息而獲得長(cháng)足的 發(fā)展,自誕生以來(lái),搜索引擎獲得了越來(lái)越多用戶(hù)的追捧,成為人們日常生活中 檢索信息必不可少的搜索工具。 研究背景 隨著(zhù)經(jīng)濟社會(huì )的發(fā)展,人們對信息搜索提出了更高的要求。傳統搜索引擎c++網(wǎng)絡(luò )爬蟲(chóng), 例如傳統的通用搜索引擎 AltaVista,Yahoo!和 Google 大都是基于關(guān)鍵字的檢 索,對按照語(yǔ)義信息提出的查詢(xún)卻無(wú)能為力,搜索結果往往包含大量用戶(hù)并不關(guān) 心的網(wǎng)頁(yè);隨著(zhù)萬(wàn)維網(wǎng)的數據方式的不斷豐富與網(wǎng)路技術(shù)的不斷發(fā)展,圖片、數 據庫、音頻及視頻多媒體等不同數據方式大量出現,傳統搜索引擎對這種信息含 量密集且具有一定數據結構的數據不能挺好的獲取和發(fā)覺(jué)。另外,傳統搜索引擎 有限的搜索引擎服務(wù)器資源與無(wú)限的網(wǎng)路數據資源之間的矛盾也日漸突出。 為了解決這種問(wèn)題,人們設計實(shí)現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站,定向抓 取相關(guān)網(wǎng)頁(yè)資源的網(wǎng)路爬蟲(chóng)。網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)下載網(wǎng)頁(yè)的程序,它按照既定 的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息。 它并不追求大的覆蓋率,而將目標定為抓取與某一特定主題內容相關(guān)的網(wǎng)頁(yè),為 面向主題的用戶(hù)查詢(xún)打算數據資源。
   1.網(wǎng)絡(luò )爬蟲(chóng)的定義及爬行策略 一個(gè)網(wǎng)路蜘蛛就是一種機器人,或者軟件代理。大體上,它從一組要訪(fǎng)問(wèn)的 URL 鏈接開(kāi)始,可以稱(chēng)這種 URL 為種子。爬蟲(chóng)訪(fǎng)問(wèn)那些鏈接,它分辨出這種頁(yè)面 的所有超鏈接,然后添加到這個(gè) URL 列表,可以比作檢索前沿。這些 URL 按照一 定的策略反復訪(fǎng)問(wèn),直到滿(mǎn)足一定的條件結束。其工作流程如下:圖 1 網(wǎng)絡(luò )爬蟲(chóng)的工作流程網(wǎng)頁(yè)爬蟲(chóng)的行為一般是四種策略組合的結果。這四種策略分別是選擇策略、 重新訪(fǎng)問(wèn)策略、平衡禮貌策略、并行策略。其中,選擇策略,用來(lái)決定所要下載 的頁(yè)面; 重新訪(fǎng)問(wèn)策略, 用來(lái)決定什么時(shí)候檢測頁(yè)面的更新變化; 平衡禮貌策略, 指出如何防止站點(diǎn)超員;并行策略,指出如何協(xié)同達到分布式抓取的療效。 2.網(wǎng)絡(luò )爬蟲(chóng)體系結構 網(wǎng)絡(luò )爬蟲(chóng)的結構主要分為以下幾個(gè)部份: (1)下載模塊,(2)網(wǎng)頁(yè)剖析模塊, (3) URL去重模塊,(4) URL分配模塊, 如圖2所示:圖2系統構架圖2.1下載模塊 下載模塊負責抓取網(wǎng)頁(yè), 是整個(gè)系統的基本與關(guān)鍵部份,直接影響爬行療效。 該模塊通常包含3 個(gè)子模塊: (1) 下載線(xiàn)程; (2) Host控制子模塊; (3) DNS 解 析子模塊。
   2.2網(wǎng)頁(yè)剖析模塊 網(wǎng)頁(yè)剖析主要是內容剖析和鏈接抽取。 網(wǎng)頁(yè)中有很多不同的編碼格式, 這些 格式來(lái)自不同的文本( 簡(jiǎn)體中文、繁體英文、英文等) 。這些不同的文本信息會(huì ) 影響到后續的正文抽取和副詞等模塊。網(wǎng)頁(yè)剖析中須要考慮到這類(lèi)問(wèn)題。 HTML,XML網(wǎng)頁(yè)不僅標題和正文以外, 會(huì )有許多版權信息、 廣告鏈接以及公共 的頻道鏈接, 這些鏈接和文本通常沒(méi)有很大的價(jià)值, 在提取網(wǎng)頁(yè)內容的時(shí)侯,需 要過(guò)濾這種無(wú)用的鏈接。對于DOC, PPT, XLS, PDF 等帶格式的文件, 網(wǎng)絡(luò )爬蟲(chóng) 都要提取出文件里的純文本內容。對于多媒體、圖片等文件, 一般是通過(guò)鏈接的 錨文本( 即鏈接文本) 和相關(guān)的文件注釋來(lái)判定那些文件的內容。 2.3 URL去重模塊 在下載的過(guò)程中, 不可防止地會(huì )碰到重復的鏈接, 如何去除那些重復的鏈 接, 是個(gè)很復雜的議程。URL的去重可以說(shuō)是爬蟲(chóng)系統中最重要的一部分, 直接 影響爬行效率和療效。 目前主流網(wǎng)路爬蟲(chóng)的URL 去重機制主要有兩種方法: (1) 完全顯存形式; (2) 基于c盤(pán)的緩存方法。完全顯存形式就是指估算URL 的Hash 值, 一般用4 至6個(gè)字節表示, 這樣10 億個(gè)網(wǎng)頁(yè)的URL 就須要5 到8個(gè)G的顯存。
   另一種方法是開(kāi)一個(gè)大鏈表進(jìn)行按位驗證, 這樣只需后者八分之一的顯存, 但有可能錯判, 且誤判率隨著(zhù)爬行規模的減小而提升。 基于c盤(pán)的緩存方法則是將大部分數據放 在c盤(pán)上, 內存里儲存一個(gè)緩存, 然后按照策略更新緩存。 由于c盤(pán)的速率比內 存慢一個(gè)數量級, 一旦所查URL不命中緩存, 就必須在c盤(pán)中進(jìn)行查找, 從而大 大影響效率。 2.4 URL分配模塊 抓取的效率主要依賴(lài)于硬件資源、網(wǎng)絡(luò )的帶寬以及程序執行效率等。普通單 處理機系統受限于CPU 的處理能力、 磁盤(pán)存儲的容量, 不可能具備處理海量信息 的能力, 這就要求Crawler 支持分布式協(xié)同工作。 URL 分配模塊主要考慮兩個(gè)問(wèn)題: (1) 在節點(diǎn)間界定URL的策略, 即怎樣分 配下載任務(wù);(2) 優(yōu)化性能, 比如負載均衡、協(xié)同工作的開(kāi)支等。 3.設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題 3.1 可伸縮性 面對網(wǎng)路上數以萬(wàn)億計的網(wǎng)頁(yè), 使用有限的資源運轉一個(gè)高性能、 可伸縮的 Crawler 是一個(gè)首要任務(wù)。完成這項任務(wù)一般有3 點(diǎn)要求。首先, 采用的算法和 數據結構要才能支持Crawler 處理海量的網(wǎng)頁(yè)。 其次, 在有限資源下, 爬行的平 均速率必須維持一個(gè)較高的水平。
   第三, 在添加硬件的情況下, 性能才能得到線(xiàn) 性下降。 在效率方面, 由于網(wǎng)絡(luò )爬蟲(chóng)可以看成是一個(gè)生產(chǎn)者消費者模型, 如何讓 各個(gè)模塊協(xié)調工作, 以達到最佳性能, 也是一個(gè)嚴重的挑戰。 3.2 提高下載質(zhì)量 網(wǎng)絡(luò )爬蟲(chóng)的目標是抓取互聯(lián)網(wǎng)上所有有價(jià)值的網(wǎng)頁(yè)。 哪些網(wǎng)頁(yè)有價(jià)值, 如何 抓取這種網(wǎng)頁(yè), 這些問(wèn)題須要對網(wǎng)頁(yè)的質(zhì)量有一個(gè)較為全面的評價(jià)。 而評價(jià)標準 主要依賴(lài)對互聯(lián)網(wǎng)和用戶(hù)需求的理解。其中, 主要包括以下幾個(gè)方面的問(wèn)題: ①網(wǎng)頁(yè)之間的鏈接關(guān)系。 ②URL 本身的質(zhì)量。 ③網(wǎng)頁(yè)重復情況。 ④網(wǎng)頁(yè)內容的評價(jià)。 3.3 網(wǎng)頁(yè)更新 目前網(wǎng)頁(yè)更新的方法有兩種: 一種是周期性進(jìn)行更新。 Crawler 第一次爬行 到設定好的規模后, 停止爬行, 然后每隔一段( 固定的) 時(shí)間對本地的索引數 據庫網(wǎng)頁(yè)進(jìn)行一次全面的信息更新維護, 即替換掉陳舊的信息, 加入新生成的 網(wǎng)頁(yè)。更新周期通常以禮拜或月為計量單位。我們稱(chēng)這些為周期性Crawler。另 一種是增量式信息更新方式。 因為互聯(lián)網(wǎng)中包含的大量網(wǎng)頁(yè)的更新周期是不一致 的, 有的變化無(wú)常, 有的非常穩定。 因此應當以網(wǎng)頁(yè)的變化周期作為進(jìn)行有效性 驗證的根據。
   在每一次網(wǎng)頁(yè)的更新過(guò)程中, 只對這些最有可能發(fā)生變化的網(wǎng)頁(yè)進(jìn) 行更新, 以不同的頻度更新不同的網(wǎng)頁(yè)。Crawler會(huì )仍然不停地爬行, 更新陳舊 的網(wǎng)頁(yè), 并用新的更重要的網(wǎng)頁(yè)替換掉次重要的網(wǎng)頁(yè)。 我們稱(chēng)采用這些方法的爬蟲(chóng)為增量式Crawler。 從理論上來(lái)講, 增量式Crawler比周期性Crawler 效率更高。 但怎么確定每位網(wǎng)頁(yè)的更新頻度, 是一個(gè)難點(diǎn)。 4.爬蟲(chóng)身分辨識 網(wǎng)絡(luò )爬蟲(chóng)通過(guò)使用 http 請求的用戶(hù)代理數組來(lái)向網(wǎng)路服務(wù)器表明她們的 身份。網(wǎng)絡(luò )管理員則通過(guò)檢測網(wǎng)路服務(wù)器的日志,使用用戶(hù)代理數組來(lái)辨別哪一 個(gè)爬蟲(chóng)以前訪(fǎng)問(wèn)過(guò)以及它訪(fǎng)問(wèn)的頻度。 用戶(hù)代理數組可能會(huì )包含一個(gè)可以使管理 員獲取爬蟲(chóng)更多信息的 URL。郵件抓取器和其他懷有惡意的網(wǎng)路爬蟲(chóng)一般不會(huì )留 任何的用戶(hù)代理數組內容, 或者她們也會(huì )將她們的身分偽裝成瀏覽器或則其他的 知名爬蟲(chóng)。 5.開(kāi)發(fā)工具介紹 5.1 Windows .NET Framework 2.0 開(kāi)發(fā)平臺 NET Framework 是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件。NET Framework 主要包含一個(gè)特別大的代碼庫,可以在顧客語(yǔ)言 ( 如 C++) 中 通 過(guò) 面 向 對 象 編 程 技 術(shù) (OOP) 來(lái) 使 用 這 些 代 碼 。
   這 個(gè) 部 分 .NET Framework 庫定義了一些基本類(lèi)型。庫分為不同的模塊,這樣就可以按照希望得 到的結果來(lái)選擇使用其中的各個(gè)部份。 5.2 開(kāi)發(fā)工具 C++ C++是由 C 子語(yǔ)言、 面向對象的 C++、 泛型編程語(yǔ)言和 STL (C++標準模板庫, Standard Template Library)組成的程序設計語(yǔ)言。C++支持 C 語(yǔ)言的幾乎全部 功能,在句型上與 C 語(yǔ)言?xún)H有極微妙的差異。C++強大(但容易失控的)模板功 能使它能在編譯期完成許多工作,從而大大提升運行期效率。隨著(zhù) STL 的不斷發(fā) 展,它早已漸漸成為 C++程序設計中不可或缺的部份,其效率可能比通常的 native 代碼低些,但是其安全性與規范性讓它大受歡迎。 5.3 后臺數據庫 ACCESS 數據庫 Microsoft Office Access(前名 Microsoft Access)是由谷歌發(fā)布的關(guān)聯(lián) 式數據庫管理系統。它結合了 Microsoft Jet Database Engine 和 圖形用戶(hù)界 面兩項特征,是 Microsoft Office 的成員之一。它簡(jiǎn)單易用,可以勝任小批量 的查詢(xún)工作。
   三、總結 本文分別從目前搜索引擎的發(fā)展現況、網(wǎng)絡(luò )爬蟲(chóng)的定義、爬行策略、爬蟲(chóng)的體系 結構、 設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)的身分辨識等方面介紹了怎樣設計一個(gè) 網(wǎng)絡(luò )爬蟲(chóng),另外本文也從開(kāi)發(fā)所需的操作系統、開(kāi)發(fā)工具以及所涉及到的數據庫 技術(shù)等方面簡(jiǎn)單介紹了怎樣實(shí)現一個(gè)網(wǎng)絡(luò )爬蟲(chóng), 并最終確立了使用 Windows .NET Framework 2.0 開(kāi)發(fā)平臺、C++與 ACCESS 的開(kāi)發(fā)方案。本文的最終目標是設計實(shí) 現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站, 定向抓取相關(guān)網(wǎng)頁(yè)資源并將其內容存入數 據庫或文本文件中的網(wǎng)路爬蟲(chóng)。參考文獻:[1] 劉金紅,陸余良.主題網(wǎng)路爬蟲(chóng)研究綜述[J].計算機應用研究,2007,(10):70-79. [2] 羅剛,王振東. 自己動(dòng)手寫(xiě)網(wǎng)路爬蟲(chóng)[M].清華大學(xué)出版社,2010c++網(wǎng)絡(luò )爬蟲(chóng),(10). [3] 大連海事大學(xué)計算機科學(xué)與技術(shù)學(xué)院.主題搜索引擎中網(wǎng)路爬蟲(chóng)的搜索策略研究[J].計算 機工程與科學(xué),2008,(03):44-46. [4] 羅剛.自己動(dòng)手寫(xiě)搜索引擎[M].電子工業(yè)出版社,2009,(11). [5] 鄭志高,劉慶圣,陳立彬.基于主題網(wǎng)路爬蟲(chóng)的網(wǎng)路學(xué)習資源搜集平臺的設計[J].中國教 育信息化,2010,(01):55-67. [6] 汪濤,樊孝忠.主題爬蟲(chóng)的設計與實(shí)現[J].計算機應用,2004,(S1):110-121. [7] 汪濤,樊孝忠.鏈接分析對主題爬蟲(chóng)的改進(jìn)[J].計算機應用,2004,(S2):55-70. [8] 尹江, 尹治本, 黃洪.網(wǎng)絡(luò )爬蟲(chóng)效率困局的剖析與解決方案[J].計算機應用, 2008, (5):20-31. [9] 汪濤, 樊孝忠, 顧益軍, 劉林.基于概念剖析的主題爬蟲(chóng)設計[J].北京理工大學(xué)學(xué)報, 2004, (10):33-41. [10] 李蕾,王楠,張劍,鐘義信,郭祥昊,賈自燕.中文搜索引擎概念檢索初探[J]. 計算機 工程與應用,2000,(06):66-75. [11] 潘春華,馮太明,武港山.基于聯(lián)通爬蟲(chóng)的專(zhuān)用 Web 信息搜集系統的設計[J].計算機工程 與應用,2003,(36):99-109. [12] 赫楓齡, 左萬(wàn)利.利用超鏈接信息改進(jìn)網(wǎng)頁(yè)爬行器的搜索策略[J].吉林大學(xué)學(xué)報(信息科學(xué) 版),2005,(01):100-108. 查看全部

  基于 C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現的研究綜述作者:xxx 指導老師:xxx摘要:本文歸納了網(wǎng)路爬蟲(chóng)的設計與實(shí)現方面的研究?jì)热?,概括了網(wǎng)路爬蟲(chóng)的定 摘要 義與爬取策略、網(wǎng)絡(luò )爬蟲(chóng)的體系結構、設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)身分的 識別等方面的觀(guān)點(diǎn),并總結了怎樣通過(guò)一個(gè)或多個(gè)給定的種子網(wǎng)站,將網(wǎng)站上相 應的網(wǎng)頁(yè)抓取出來(lái),并將其存入數據庫或文本文件中的研究成果。本文也強調了 如何通過(guò)解決傳統的通用搜索引擎在個(gè)別領(lǐng)域的局限性, 幫助人們愈加有效地提 取與借助互聯(lián)網(wǎng)信息,進(jìn)而提升人們在檢索信息效率方面的研究需求。最后,本 文提出了一個(gè)滿(mǎn)足用戶(hù)需求的網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)方案。 關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng) ;通用搜索引擎 ;互聯(lián)網(wǎng) 關(guān)鍵詞The Design and Implementation of Web Spider Based on C++Author:xxxTutor: xxx Abstract:This paper summarizes the research about the design and implementation of the web spider, summarizesthe view aboutthe definition of web spider, the crawling strategy of the web spider, the architecture of the web spider, the key issues to design the web spider and identification of the web spider ,and summarizes the research about how to catch the web-pages which links to the corresponding web site through one or more given seed site, and then stores it into a database or text file . The paper also points out how to solve the limitations of the Traditional General Search Engine in some areas , help people more effectively extract the information and make use of the Internet, then improve people’sresearch needs in the area of information retrieval. In the end, the paper proposesa web spider development planwhich can meet the user’s needs. Keywords:WebSpiders ;Tradition Universal Search Engine ; Internet隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息的提取與借助在人們的日常生活中越來(lái)越重要。
  搜索 引擎因為才能從廣袤的網(wǎng)路資源中給用戶(hù)提供對用戶(hù)有用的信息而獲得長(cháng)足的 發(fā)展,自誕生以來(lái),搜索引擎獲得了越來(lái)越多用戶(hù)的追捧,成為人們日常生活中 檢索信息必不可少的搜索工具。 研究背景 隨著(zhù)經(jīng)濟社會(huì )的發(fā)展,人們對信息搜索提出了更高的要求。傳統搜索引擎c++網(wǎng)絡(luò )爬蟲(chóng), 例如傳統的通用搜索引擎 AltaVista,Yahoo!和 Google 大都是基于關(guān)鍵字的檢 索,對按照語(yǔ)義信息提出的查詢(xún)卻無(wú)能為力,搜索結果往往包含大量用戶(hù)并不關(guān) 心的網(wǎng)頁(yè);隨著(zhù)萬(wàn)維網(wǎng)的數據方式的不斷豐富與網(wǎng)路技術(shù)的不斷發(fā)展,圖片、數 據庫、音頻及視頻多媒體等不同數據方式大量出現,傳統搜索引擎對這種信息含 量密集且具有一定數據結構的數據不能挺好的獲取和發(fā)覺(jué)。另外,傳統搜索引擎 有限的搜索引擎服務(wù)器資源與無(wú)限的網(wǎng)路數據資源之間的矛盾也日漸突出。 為了解決這種問(wèn)題,人們設計實(shí)現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站,定向抓 取相關(guān)網(wǎng)頁(yè)資源的網(wǎng)路爬蟲(chóng)。網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)下載網(wǎng)頁(yè)的程序,它按照既定 的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息。 它并不追求大的覆蓋率,而將目標定為抓取與某一特定主題內容相關(guān)的網(wǎng)頁(yè),為 面向主題的用戶(hù)查詢(xún)打算數據資源。
   1.網(wǎng)絡(luò )爬蟲(chóng)的定義及爬行策略 一個(gè)網(wǎng)路蜘蛛就是一種機器人,或者軟件代理。大體上,它從一組要訪(fǎng)問(wèn)的 URL 鏈接開(kāi)始,可以稱(chēng)這種 URL 為種子。爬蟲(chóng)訪(fǎng)問(wèn)那些鏈接,它分辨出這種頁(yè)面 的所有超鏈接,然后添加到這個(gè) URL 列表,可以比作檢索前沿。這些 URL 按照一 定的策略反復訪(fǎng)問(wèn),直到滿(mǎn)足一定的條件結束。其工作流程如下:圖 1 網(wǎng)絡(luò )爬蟲(chóng)的工作流程網(wǎng)頁(yè)爬蟲(chóng)的行為一般是四種策略組合的結果。這四種策略分別是選擇策略、 重新訪(fǎng)問(wèn)策略、平衡禮貌策略、并行策略。其中,選擇策略,用來(lái)決定所要下載 的頁(yè)面; 重新訪(fǎng)問(wèn)策略, 用來(lái)決定什么時(shí)候檢測頁(yè)面的更新變化; 平衡禮貌策略, 指出如何防止站點(diǎn)超員;并行策略,指出如何協(xié)同達到分布式抓取的療效。 2.網(wǎng)絡(luò )爬蟲(chóng)體系結構 網(wǎng)絡(luò )爬蟲(chóng)的結構主要分為以下幾個(gè)部份: (1)下載模塊,(2)網(wǎng)頁(yè)剖析模塊, (3) URL去重模塊,(4) URL分配模塊, 如圖2所示:圖2系統構架圖2.1下載模塊 下載模塊負責抓取網(wǎng)頁(yè), 是整個(gè)系統的基本與關(guān)鍵部份,直接影響爬行療效。 該模塊通常包含3 個(gè)子模塊: (1) 下載線(xiàn)程; (2) Host控制子模塊; (3) DNS 解 析子模塊。
   2.2網(wǎng)頁(yè)剖析模塊 網(wǎng)頁(yè)剖析主要是內容剖析和鏈接抽取。 網(wǎng)頁(yè)中有很多不同的編碼格式, 這些 格式來(lái)自不同的文本( 簡(jiǎn)體中文、繁體英文、英文等) 。這些不同的文本信息會(huì ) 影響到后續的正文抽取和副詞等模塊。網(wǎng)頁(yè)剖析中須要考慮到這類(lèi)問(wèn)題。 HTML,XML網(wǎng)頁(yè)不僅標題和正文以外, 會(huì )有許多版權信息、 廣告鏈接以及公共 的頻道鏈接, 這些鏈接和文本通常沒(méi)有很大的價(jià)值, 在提取網(wǎng)頁(yè)內容的時(shí)侯,需 要過(guò)濾這種無(wú)用的鏈接。對于DOC, PPT, XLS, PDF 等帶格式的文件, 網(wǎng)絡(luò )爬蟲(chóng) 都要提取出文件里的純文本內容。對于多媒體、圖片等文件, 一般是通過(guò)鏈接的 錨文本( 即鏈接文本) 和相關(guān)的文件注釋來(lái)判定那些文件的內容。 2.3 URL去重模塊 在下載的過(guò)程中, 不可防止地會(huì )碰到重復的鏈接, 如何去除那些重復的鏈 接, 是個(gè)很復雜的議程。URL的去重可以說(shuō)是爬蟲(chóng)系統中最重要的一部分, 直接 影響爬行效率和療效。 目前主流網(wǎng)路爬蟲(chóng)的URL 去重機制主要有兩種方法: (1) 完全顯存形式; (2) 基于c盤(pán)的緩存方法。完全顯存形式就是指估算URL 的Hash 值, 一般用4 至6個(gè)字節表示, 這樣10 億個(gè)網(wǎng)頁(yè)的URL 就須要5 到8個(gè)G的顯存。
   另一種方法是開(kāi)一個(gè)大鏈表進(jìn)行按位驗證, 這樣只需后者八分之一的顯存, 但有可能錯判, 且誤判率隨著(zhù)爬行規模的減小而提升。 基于c盤(pán)的緩存方法則是將大部分數據放 在c盤(pán)上, 內存里儲存一個(gè)緩存, 然后按照策略更新緩存。 由于c盤(pán)的速率比內 存慢一個(gè)數量級, 一旦所查URL不命中緩存, 就必須在c盤(pán)中進(jìn)行查找, 從而大 大影響效率。 2.4 URL分配模塊 抓取的效率主要依賴(lài)于硬件資源、網(wǎng)絡(luò )的帶寬以及程序執行效率等。普通單 處理機系統受限于CPU 的處理能力、 磁盤(pán)存儲的容量, 不可能具備處理海量信息 的能力, 這就要求Crawler 支持分布式協(xié)同工作。 URL 分配模塊主要考慮兩個(gè)問(wèn)題: (1) 在節點(diǎn)間界定URL的策略, 即怎樣分 配下載任務(wù);(2) 優(yōu)化性能, 比如負載均衡、協(xié)同工作的開(kāi)支等。 3.設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題 3.1 可伸縮性 面對網(wǎng)路上數以萬(wàn)億計的網(wǎng)頁(yè), 使用有限的資源運轉一個(gè)高性能、 可伸縮的 Crawler 是一個(gè)首要任務(wù)。完成這項任務(wù)一般有3 點(diǎn)要求。首先, 采用的算法和 數據結構要才能支持Crawler 處理海量的網(wǎng)頁(yè)。 其次, 在有限資源下, 爬行的平 均速率必須維持一個(gè)較高的水平。
   第三, 在添加硬件的情況下, 性能才能得到線(xiàn) 性下降。 在效率方面, 由于網(wǎng)絡(luò )爬蟲(chóng)可以看成是一個(gè)生產(chǎn)者消費者模型, 如何讓 各個(gè)模塊協(xié)調工作, 以達到最佳性能, 也是一個(gè)嚴重的挑戰。 3.2 提高下載質(zhì)量 網(wǎng)絡(luò )爬蟲(chóng)的目標是抓取互聯(lián)網(wǎng)上所有有價(jià)值的網(wǎng)頁(yè)。 哪些網(wǎng)頁(yè)有價(jià)值, 如何 抓取這種網(wǎng)頁(yè), 這些問(wèn)題須要對網(wǎng)頁(yè)的質(zhì)量有一個(gè)較為全面的評價(jià)。 而評價(jià)標準 主要依賴(lài)對互聯(lián)網(wǎng)和用戶(hù)需求的理解。其中, 主要包括以下幾個(gè)方面的問(wèn)題: ①網(wǎng)頁(yè)之間的鏈接關(guān)系。 ②URL 本身的質(zhì)量。 ③網(wǎng)頁(yè)重復情況。 ④網(wǎng)頁(yè)內容的評價(jià)。 3.3 網(wǎng)頁(yè)更新 目前網(wǎng)頁(yè)更新的方法有兩種: 一種是周期性進(jìn)行更新。 Crawler 第一次爬行 到設定好的規模后, 停止爬行, 然后每隔一段( 固定的) 時(shí)間對本地的索引數 據庫網(wǎng)頁(yè)進(jìn)行一次全面的信息更新維護, 即替換掉陳舊的信息, 加入新生成的 網(wǎng)頁(yè)。更新周期通常以禮拜或月為計量單位。我們稱(chēng)這些為周期性Crawler。另 一種是增量式信息更新方式。 因為互聯(lián)網(wǎng)中包含的大量網(wǎng)頁(yè)的更新周期是不一致 的, 有的變化無(wú)常, 有的非常穩定。 因此應當以網(wǎng)頁(yè)的變化周期作為進(jìn)行有效性 驗證的根據。
   在每一次網(wǎng)頁(yè)的更新過(guò)程中, 只對這些最有可能發(fā)生變化的網(wǎng)頁(yè)進(jìn) 行更新, 以不同的頻度更新不同的網(wǎng)頁(yè)。Crawler會(huì )仍然不停地爬行, 更新陳舊 的網(wǎng)頁(yè), 并用新的更重要的網(wǎng)頁(yè)替換掉次重要的網(wǎng)頁(yè)。 我們稱(chēng)采用這些方法的爬蟲(chóng)為增量式Crawler。 從理論上來(lái)講, 增量式Crawler比周期性Crawler 效率更高。 但怎么確定每位網(wǎng)頁(yè)的更新頻度, 是一個(gè)難點(diǎn)。 4.爬蟲(chóng)身分辨識 網(wǎng)絡(luò )爬蟲(chóng)通過(guò)使用 http 請求的用戶(hù)代理數組來(lái)向網(wǎng)路服務(wù)器表明她們的 身份。網(wǎng)絡(luò )管理員則通過(guò)檢測網(wǎng)路服務(wù)器的日志,使用用戶(hù)代理數組來(lái)辨別哪一 個(gè)爬蟲(chóng)以前訪(fǎng)問(wèn)過(guò)以及它訪(fǎng)問(wèn)的頻度。 用戶(hù)代理數組可能會(huì )包含一個(gè)可以使管理 員獲取爬蟲(chóng)更多信息的 URL。郵件抓取器和其他懷有惡意的網(wǎng)路爬蟲(chóng)一般不會(huì )留 任何的用戶(hù)代理數組內容, 或者她們也會(huì )將她們的身分偽裝成瀏覽器或則其他的 知名爬蟲(chóng)。 5.開(kāi)發(fā)工具介紹 5.1 Windows .NET Framework 2.0 開(kāi)發(fā)平臺 NET Framework 是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件。NET Framework 主要包含一個(gè)特別大的代碼庫,可以在顧客語(yǔ)言 ( 如 C++) 中 通 過(guò) 面 向 對 象 編 程 技 術(shù) (OOP) 來(lái) 使 用 這 些 代 碼 。
   這 個(gè) 部 分 .NET Framework 庫定義了一些基本類(lèi)型。庫分為不同的模塊,這樣就可以按照希望得 到的結果來(lái)選擇使用其中的各個(gè)部份。 5.2 開(kāi)發(fā)工具 C++ C++是由 C 子語(yǔ)言、 面向對象的 C++、 泛型編程語(yǔ)言和 STL (C++標準模板庫, Standard Template Library)組成的程序設計語(yǔ)言。C++支持 C 語(yǔ)言的幾乎全部 功能,在句型上與 C 語(yǔ)言?xún)H有極微妙的差異。C++強大(但容易失控的)模板功 能使它能在編譯期完成許多工作,從而大大提升運行期效率。隨著(zhù) STL 的不斷發(fā) 展,它早已漸漸成為 C++程序設計中不可或缺的部份,其效率可能比通常的 native 代碼低些,但是其安全性與規范性讓它大受歡迎。 5.3 后臺數據庫 ACCESS 數據庫 Microsoft Office Access(前名 Microsoft Access)是由谷歌發(fā)布的關(guān)聯(lián) 式數據庫管理系統。它結合了 Microsoft Jet Database Engine 和 圖形用戶(hù)界 面兩項特征,是 Microsoft Office 的成員之一。它簡(jiǎn)單易用,可以勝任小批量 的查詢(xún)工作。
   三、總結 本文分別從目前搜索引擎的發(fā)展現況、網(wǎng)絡(luò )爬蟲(chóng)的定義、爬行策略、爬蟲(chóng)的體系 結構、 設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)的身分辨識等方面介紹了怎樣設計一個(gè) 網(wǎng)絡(luò )爬蟲(chóng),另外本文也從開(kāi)發(fā)所需的操作系統、開(kāi)發(fā)工具以及所涉及到的數據庫 技術(shù)等方面簡(jiǎn)單介紹了怎樣實(shí)現一個(gè)網(wǎng)絡(luò )爬蟲(chóng), 并最終確立了使用 Windows .NET Framework 2.0 開(kāi)發(fā)平臺、C++與 ACCESS 的開(kāi)發(fā)方案。本文的最終目標是設計實(shí) 現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站, 定向抓取相關(guān)網(wǎng)頁(yè)資源并將其內容存入數 據庫或文本文件中的網(wǎng)路爬蟲(chóng)。參考文獻:[1] 劉金紅,陸余良.主題網(wǎng)路爬蟲(chóng)研究綜述[J].計算機應用研究,2007,(10):70-79. [2] 羅剛,王振東. 自己動(dòng)手寫(xiě)網(wǎng)路爬蟲(chóng)[M].清華大學(xué)出版社,2010c++網(wǎng)絡(luò )爬蟲(chóng),(10). [3] 大連海事大學(xué)計算機科學(xué)與技術(shù)學(xué)院.主題搜索引擎中網(wǎng)路爬蟲(chóng)的搜索策略研究[J].計算 機工程與科學(xué),2008,(03):44-46. [4] 羅剛.自己動(dòng)手寫(xiě)搜索引擎[M].電子工業(yè)出版社,2009,(11). [5] 鄭志高,劉慶圣,陳立彬.基于主題網(wǎng)路爬蟲(chóng)的網(wǎng)路學(xué)習資源搜集平臺的設計[J].中國教 育信息化,2010,(01):55-67. [6] 汪濤,樊孝忠.主題爬蟲(chóng)的設計與實(shí)現[J].計算機應用,2004,(S1):110-121. [7] 汪濤,樊孝忠.鏈接分析對主題爬蟲(chóng)的改進(jìn)[J].計算機應用,2004,(S2):55-70. [8] 尹江, 尹治本, 黃洪.網(wǎng)絡(luò )爬蟲(chóng)效率困局的剖析與解決方案[J].計算機應用, 2008, (5):20-31. [9] 汪濤, 樊孝忠, 顧益軍, 劉林.基于概念剖析的主題爬蟲(chóng)設計[J].北京理工大學(xué)學(xué)報, 2004, (10):33-41. [10] 李蕾,王楠,張劍,鐘義信,郭祥昊,賈自燕.中文搜索引擎概念檢索初探[J]. 計算機 工程與應用,2000,(06):66-75. [11] 潘春華,馮太明,武港山.基于聯(lián)通爬蟲(chóng)的專(zhuān)用 Web 信息搜集系統的設計[J].計算機工程 與應用,2003,(36):99-109. [12] 赫楓齡, 左萬(wàn)利.利用超鏈接信息改進(jìn)網(wǎng)頁(yè)爬行器的搜索策略[J].吉林大學(xué)學(xué)報(信息科學(xué) 版),2005,(01):100-108.

聚焦爬蟲(chóng)常見(jiàn)算法剖析

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 340 次瀏覽 ? 2020-05-17 08:02 ? 來(lái)自相關(guān)話(huà)題

  電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
  例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
   但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
   Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
   (1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
  因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
  相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
   參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
  小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
  首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部

  電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
  例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
   但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
   Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
   (1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
  因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
  相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
   參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
  小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
  首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè))

網(wǎng)絡(luò )爬蟲(chóng)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 370 次瀏覽 ? 2020-05-14 08:09 ? 來(lái)自相關(guān)話(huà)題

  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)又名“網(wǎng)絡(luò )蜘蛛”,是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)找尋網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,讀取網(wǎng)頁(yè)的內容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這種鏈接地址找尋下一個(gè)網(wǎng)頁(yè),這樣仍然循環(huán)下去,直到根據某種策略把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取完為止的技術(shù)。
  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。實(shí)際應用中一般是將系統幾種爬蟲(chóng)技術(shù)互相結合。
  (一)通用網(wǎng)路爬蟲(chóng)(general purpose web crawler)
  通用網(wǎng)路爬蟲(chóng)按照預先設定的一個(gè)或若干初始種子URL開(kāi)始,以此獲得初始網(wǎng)頁(yè)上的URL列表,在爬行過(guò)程中不斷從URL隊列中獲一個(gè)的URL,進(jìn)而訪(fǎng)問(wèn)并下載該頁(yè)面。頁(yè)面下載后頁(yè)面解析器除去頁(yè)面上的HTML標記后得到頁(yè)面內容,將摘要、URL等信息保存到Web數據庫中,同時(shí)抽取當前頁(yè)面上新的URL,保存到URL隊列,直到滿(mǎn)足系統停止條件。其工作流程如圖1所示。
  
  通用爬蟲(chóng)主要存在以下幾方面的局限性:1)由于抓取目標是盡可能大的覆蓋網(wǎng)路,所以爬行的結果中包含大量用戶(hù)不需要的網(wǎng)頁(yè);2)不能挺好地搜索和獲取信息濃度密集且具有一定結構的數據;3)通用搜索引擎大多是基于關(guān)鍵字的檢索,對于支持語(yǔ)義信息的查詢(xún)和索引擎智能化的要求無(wú)法實(shí)現。
  由此可見(jiàn),通用爬蟲(chóng)想在爬行網(wǎng)頁(yè)時(shí),既保證網(wǎng)頁(yè)的質(zhì)量和數目,又要保證網(wǎng)頁(yè)的時(shí)效性是很難實(shí)現的。
  (二)主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)
  1.主題爬蟲(chóng)原理
  主題爬蟲(chóng)并不追求大的覆蓋率,也不是全盤(pán)接受所有的網(wǎng)頁(yè)和URL,它按照既定的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息,不僅客服了通用爬蟲(chóng)存在的問(wèn)題,而H-返回的數據資源更精確。主題爬蟲(chóng)的基本工作原理是根據預先確定的主題,分析超鏈接和剛才抓取的網(wǎng)頁(yè)內容,獲取下一個(gè)要爬行的URL,盡可能保證多爬行與主題相關(guān)的網(wǎng)頁(yè),因此主題爬蟲(chóng)要解決以下關(guān)鍵問(wèn)題:1)如何判斷一個(gè)早已抓取的網(wǎng)頁(yè)是否與主題相關(guān);2)如何過(guò)濾掉海量的網(wǎng)頁(yè)中與主題不相關(guān)的或則相關(guān)度較低的網(wǎng)頁(yè);3)如何有目的、有控制的抓取與特定主題相關(guān)的web頁(yè)面信息;4)如何決定待訪(fǎng)問(wèn)URL的訪(fǎng)問(wèn)順序;5)如何提升主題爬蟲(chóng)的覆蓋度;6)如何協(xié)調抓取目標的描述或定義與網(wǎng)頁(yè)分析算法及候選URL排序算法之問(wèn)的關(guān)系;7)如何找尋和發(fā)覺(jué)高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源。高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源除了可以大大提升主題爬蟲(chóng)收集Web頁(yè)面的效率和質(zhì)量,還可以為主題表示模型的優(yōu)化等應用提供支持。
  2.主題爬蟲(chóng)模塊設計
  主題爬蟲(chóng)的目標是盡可能多的發(fā)覺(jué)和收集與預定主題相關(guān)的網(wǎng)頁(yè)網(wǎng)絡(luò )爬蟲(chóng),其最大特征在于具備剖析網(wǎng)頁(yè)內容和判斷主題相關(guān)度的能力。根據主題爬蟲(chóng)的工作原理,下面設計了一個(gè)主題爬蟲(chóng)系統,主要有頁(yè)面采集模塊、頁(yè)面剖析模塊、相關(guān)度估算模塊、頁(yè)面過(guò)濾模塊和鏈接排序模塊幾部份組成網(wǎng)絡(luò )爬蟲(chóng),其總體功能模塊結構如圖2所示。
  
  頁(yè)面采集模塊:主要是依據待訪(fǎng)問(wèn)URL隊列進(jìn)行頁(yè)面下載,再交給網(wǎng)頁(yè)剖析模型處理以抽取網(wǎng)頁(yè)主題向量空間模型。該模塊是任何爬蟲(chóng)系統都必不可少的模塊。頁(yè)面剖析模塊:該模塊的功能是對采集到的頁(yè)面進(jìn)行剖析,主要用于聯(lián)接超鏈接排序模塊和頁(yè)面相關(guān)度估算模塊。
  頁(yè)面相關(guān)度估算模塊:該模塊是整個(gè)系統的核心模塊,主要用于評估與主題的相關(guān)度,并提供相關(guān)的爬行策略用以指導爬蟲(chóng)的爬行過(guò)程。URL的超鏈接評價(jià)得分越高,爬行的優(yōu)先級就越高。其主要思想是,在系統爬行之前,頁(yè)面相關(guān)度估算模塊按照用戶(hù)輸入的關(guān)鍵字和初始文本信息進(jìn)行學(xué)習,訓練一個(gè)頁(yè)面相關(guān)度評價(jià)模型。當一個(gè)被覺(jué)得是主題相關(guān)的頁(yè)面爬行出來(lái)以后,該頁(yè)面就被送入頁(yè)面相關(guān)度評價(jià)器估算其主題相關(guān)度值,若該值小于或等于給定的某儔值,則該頁(yè)面就被存入頁(yè)面庫,否則遺棄¨。頁(yè)面過(guò)濾模塊:過(guò)濾掉與主題無(wú)關(guān)的鏈接,同時(shí)將該URL及其所有蘊涵的子鏈接一并清除。通過(guò)過(guò)濾,爬蟲(chóng)就無(wú)需遍歷與主題不相關(guān)的頁(yè)面,從而保證了爬行效率。排序模塊:將過(guò)濾后頁(yè)面根據優(yōu)先級高低加入到待訪(fǎng)問(wèn)的URL隊列里。
  3.主題爬蟲(chóng)流程設計
  主題爬蟲(chóng)須要依照一定的網(wǎng)頁(yè)剖析算法,過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它會(huì )依照一定的搜索策略從待抓取的隊列中選擇下一個(gè)要抓取的URL,并重復上述過(guò)程,直到滿(mǎn)足系統停止條件為止。所有被抓取網(wǎng)頁(yè)就會(huì )被系統儲存,經(jīng)過(guò)一定的剖析、過(guò)濾,然后構建索引,以便用戶(hù)查詢(xún)和檢索;這一過(guò)程所得到的剖析結果可以對之后的抓取過(guò)程提供反饋和指導。其工作流程如圖3所示。
  
  4.深度網(wǎng)路爬蟲(chóng)(Deep Web Crawler)
  1994年Dr.jillEllsworth提出DeepWeb(深層頁(yè)面)的概念,即DeepWeb是指普通搜索引擎無(wú)法發(fā)覺(jué)的信息內容的Web頁(yè)面¨。DeepWeb中的信息量比普通的網(wǎng)頁(yè)信息量多,而且質(zhì)量更高。但是普通的搜索引擎因為技術(shù)限制而收集不到這種高質(zhì)量、高權威的信息。這些信息一般隱藏在深度Web頁(yè)面的小型動(dòng)態(tài)數據庫中,涉及數據集成、中文語(yǔ)義辨識等眾多領(lǐng)域。如此龐大的信息資源假如沒(méi)有合理的、高效的方式去獲取,將是巨大的損失。因此,對于深度網(wǎng)爬行技術(shù)的研究具有極為重大的現實(shí)意義和理論價(jià)值。
  常規的網(wǎng)路爬蟲(chóng)在運行中難以發(fā)覺(jué)隱藏在普通網(wǎng)頁(yè)中的信息和規律,缺乏一定的主動(dòng)性和智能性。比如須要輸入用戶(hù)名和密碼的頁(yè)面,或者包含頁(yè)腳導航的頁(yè)面均未能爬行。深度爬蟲(chóng)的設計針對常規網(wǎng)路爬蟲(chóng)的那些不足,將其結構做以改進(jìn),增加了表單剖析和頁(yè)面狀態(tài)保持兩個(gè)部份,其結構如圖4所示,通過(guò)剖析網(wǎng)頁(yè)的結構并將其歸類(lèi)為普通網(wǎng)頁(yè)或存在更多信息的深度網(wǎng)頁(yè),針對深度網(wǎng)頁(yè)構造合適的表單參數而且遞交,以得到更多的頁(yè)面。深度爬蟲(chóng)的流程圖如圖4所示。深度爬蟲(chóng)與常規爬蟲(chóng)的不同是,深度爬蟲(chóng)在下載完成頁(yè)面然后并沒(méi)有立刻遍歷其中的所有超鏈接,而是使用一定的算法將其進(jìn)行分類(lèi),對于不同的類(lèi)別采取不同的方式估算查詢(xún)參數,并將參數再度遞交到服務(wù)器。如果遞交的查詢(xún)參數正確,那么將會(huì )得到隱藏的頁(yè)面和鏈接。深度爬蟲(chóng)的目標是盡可能多地訪(fǎng)問(wèn)和搜集互聯(lián)網(wǎng)上的網(wǎng)頁(yè),由于深度頁(yè)面是通過(guò)遞交表單的形式訪(fǎng)問(wèn),因此爬行深度頁(yè)面存在以下三個(gè)方面的困難:1)深度爬蟲(chóng)須要有高效的算法去應對數目巨大的深層頁(yè)面數據;2)很多服務(wù)器端DeepWeb要求校準表單輸入,如用戶(hù)名、密碼、校驗碼等,如果校準失敗,將不能爬到DeepWeb數據;3)需要JavaScript等腳本支持剖析客戶(hù)端DeepWeb。
  
  [編輯]
  (1)IP地址搜索策略
  IP地址搜索策略是先給爬蟲(chóng)一個(gè)起始的IP地址,然后按照IP地址以遞增的形式搜索本IP地址段后的每一個(gè)地址中的文檔,它完全不考慮各文檔中指向其它Web站點(diǎn)的超級鏈接地址。這種搜索策略的優(yōu)點(diǎn)是搜索比較全面,因此能否發(fā)覺(jué)這些沒(méi)被其它文檔引用的新文檔的信息源;但是缺點(diǎn)是不適宜大規模搜索。
  (2)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是一種在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式。它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超鏈的HTML文件)。例如,在一個(gè)HTML文件中,當一個(gè)超鏈被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,也就是說(shuō)在搜索其余的超鏈結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超鏈走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超鏈。當不再有其他超鏈可選擇時(shí),說(shuō)明搜索早已結束。
  (3)寬度優(yōu)先搜索策略
  寬度優(yōu)先搜索的過(guò)程是先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML文件中有三個(gè)超鏈,選擇其中之一并處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超鏈,而是返回并選擇第二個(gè)超鏈,處理相應的HTML文件,再返回,選擇第三個(gè)超鏈并處理相應的HTML文件。當一層上的所有超鏈都已被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超鏈。
  寬度優(yōu)先搜索策略的優(yōu)點(diǎn):一個(gè)是保證了對淺層的優(yōu)先處理,當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí),不會(huì )造成陷進(jìn)www中的深層文檔中出現出不來(lái)的情況發(fā)生;另一個(gè)是它能在兩個(gè)HTML文件之間找到最短路徑。
  寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費比較長(cháng)的時(shí)間才會(huì )抵達深層的HTML文件。
  [編輯]
  于成龍,于洪波.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)研究[J].東莞理工學(xué)院學(xué)報.2011,5 蔡笑倫.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的發(fā)展趁機[J].科技信息.2010,12
  來(lái)自"https://wiki.mbalib.com/wiki/% ... ot%3B
  本條目對我有幫助8
  賞
  MBA智庫APP
  
  掃一掃,下載MBA智庫APP 查看全部

  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)又名“網(wǎng)絡(luò )蜘蛛”,是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)找尋網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,讀取網(wǎng)頁(yè)的內容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這種鏈接地址找尋下一個(gè)網(wǎng)頁(yè),這樣仍然循環(huán)下去,直到根據某種策略把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取完為止的技術(shù)。
  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。實(shí)際應用中一般是將系統幾種爬蟲(chóng)技術(shù)互相結合。
  (一)通用網(wǎng)路爬蟲(chóng)(general purpose web crawler)
  通用網(wǎng)路爬蟲(chóng)按照預先設定的一個(gè)或若干初始種子URL開(kāi)始,以此獲得初始網(wǎng)頁(yè)上的URL列表,在爬行過(guò)程中不斷從URL隊列中獲一個(gè)的URL,進(jìn)而訪(fǎng)問(wèn)并下載該頁(yè)面。頁(yè)面下載后頁(yè)面解析器除去頁(yè)面上的HTML標記后得到頁(yè)面內容,將摘要、URL等信息保存到Web數據庫中,同時(shí)抽取當前頁(yè)面上新的URL,保存到URL隊列,直到滿(mǎn)足系統停止條件。其工作流程如圖1所示。
  
  通用爬蟲(chóng)主要存在以下幾方面的局限性:1)由于抓取目標是盡可能大的覆蓋網(wǎng)路,所以爬行的結果中包含大量用戶(hù)不需要的網(wǎng)頁(yè);2)不能挺好地搜索和獲取信息濃度密集且具有一定結構的數據;3)通用搜索引擎大多是基于關(guān)鍵字的檢索,對于支持語(yǔ)義信息的查詢(xún)和索引擎智能化的要求無(wú)法實(shí)現。
  由此可見(jiàn),通用爬蟲(chóng)想在爬行網(wǎng)頁(yè)時(shí),既保證網(wǎng)頁(yè)的質(zhì)量和數目,又要保證網(wǎng)頁(yè)的時(shí)效性是很難實(shí)現的。
  (二)主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)
  1.主題爬蟲(chóng)原理
  主題爬蟲(chóng)并不追求大的覆蓋率,也不是全盤(pán)接受所有的網(wǎng)頁(yè)和URL,它按照既定的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息,不僅客服了通用爬蟲(chóng)存在的問(wèn)題,而H-返回的數據資源更精確。主題爬蟲(chóng)的基本工作原理是根據預先確定的主題,分析超鏈接和剛才抓取的網(wǎng)頁(yè)內容,獲取下一個(gè)要爬行的URL,盡可能保證多爬行與主題相關(guān)的網(wǎng)頁(yè),因此主題爬蟲(chóng)要解決以下關(guān)鍵問(wèn)題:1)如何判斷一個(gè)早已抓取的網(wǎng)頁(yè)是否與主題相關(guān);2)如何過(guò)濾掉海量的網(wǎng)頁(yè)中與主題不相關(guān)的或則相關(guān)度較低的網(wǎng)頁(yè);3)如何有目的、有控制的抓取與特定主題相關(guān)的web頁(yè)面信息;4)如何決定待訪(fǎng)問(wèn)URL的訪(fǎng)問(wèn)順序;5)如何提升主題爬蟲(chóng)的覆蓋度;6)如何協(xié)調抓取目標的描述或定義與網(wǎng)頁(yè)分析算法及候選URL排序算法之問(wèn)的關(guān)系;7)如何找尋和發(fā)覺(jué)高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源。高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源除了可以大大提升主題爬蟲(chóng)收集Web頁(yè)面的效率和質(zhì)量,還可以為主題表示模型的優(yōu)化等應用提供支持。
  2.主題爬蟲(chóng)模塊設計
  主題爬蟲(chóng)的目標是盡可能多的發(fā)覺(jué)和收集與預定主題相關(guān)的網(wǎng)頁(yè)網(wǎng)絡(luò )爬蟲(chóng),其最大特征在于具備剖析網(wǎng)頁(yè)內容和判斷主題相關(guān)度的能力。根據主題爬蟲(chóng)的工作原理,下面設計了一個(gè)主題爬蟲(chóng)系統,主要有頁(yè)面采集模塊、頁(yè)面剖析模塊、相關(guān)度估算模塊、頁(yè)面過(guò)濾模塊和鏈接排序模塊幾部份組成網(wǎng)絡(luò )爬蟲(chóng),其總體功能模塊結構如圖2所示。
  
  頁(yè)面采集模塊:主要是依據待訪(fǎng)問(wèn)URL隊列進(jìn)行頁(yè)面下載,再交給網(wǎng)頁(yè)剖析模型處理以抽取網(wǎng)頁(yè)主題向量空間模型。該模塊是任何爬蟲(chóng)系統都必不可少的模塊。頁(yè)面剖析模塊:該模塊的功能是對采集到的頁(yè)面進(jìn)行剖析,主要用于聯(lián)接超鏈接排序模塊和頁(yè)面相關(guān)度估算模塊。
  頁(yè)面相關(guān)度估算模塊:該模塊是整個(gè)系統的核心模塊,主要用于評估與主題的相關(guān)度,并提供相關(guān)的爬行策略用以指導爬蟲(chóng)的爬行過(guò)程。URL的超鏈接評價(jià)得分越高,爬行的優(yōu)先級就越高。其主要思想是,在系統爬行之前,頁(yè)面相關(guān)度估算模塊按照用戶(hù)輸入的關(guān)鍵字和初始文本信息進(jìn)行學(xué)習,訓練一個(gè)頁(yè)面相關(guān)度評價(jià)模型。當一個(gè)被覺(jué)得是主題相關(guān)的頁(yè)面爬行出來(lái)以后,該頁(yè)面就被送入頁(yè)面相關(guān)度評價(jià)器估算其主題相關(guān)度值,若該值小于或等于給定的某儔值,則該頁(yè)面就被存入頁(yè)面庫,否則遺棄¨。頁(yè)面過(guò)濾模塊:過(guò)濾掉與主題無(wú)關(guān)的鏈接,同時(shí)將該URL及其所有蘊涵的子鏈接一并清除。通過(guò)過(guò)濾,爬蟲(chóng)就無(wú)需遍歷與主題不相關(guān)的頁(yè)面,從而保證了爬行效率。排序模塊:將過(guò)濾后頁(yè)面根據優(yōu)先級高低加入到待訪(fǎng)問(wèn)的URL隊列里。
  3.主題爬蟲(chóng)流程設計
  主題爬蟲(chóng)須要依照一定的網(wǎng)頁(yè)剖析算法,過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它會(huì )依照一定的搜索策略從待抓取的隊列中選擇下一個(gè)要抓取的URL,并重復上述過(guò)程,直到滿(mǎn)足系統停止條件為止。所有被抓取網(wǎng)頁(yè)就會(huì )被系統儲存,經(jīng)過(guò)一定的剖析、過(guò)濾,然后構建索引,以便用戶(hù)查詢(xún)和檢索;這一過(guò)程所得到的剖析結果可以對之后的抓取過(guò)程提供反饋和指導。其工作流程如圖3所示。
  
  4.深度網(wǎng)路爬蟲(chóng)(Deep Web Crawler)
  1994年Dr.jillEllsworth提出DeepWeb(深層頁(yè)面)的概念,即DeepWeb是指普通搜索引擎無(wú)法發(fā)覺(jué)的信息內容的Web頁(yè)面¨。DeepWeb中的信息量比普通的網(wǎng)頁(yè)信息量多,而且質(zhì)量更高。但是普通的搜索引擎因為技術(shù)限制而收集不到這種高質(zhì)量、高權威的信息。這些信息一般隱藏在深度Web頁(yè)面的小型動(dòng)態(tài)數據庫中,涉及數據集成、中文語(yǔ)義辨識等眾多領(lǐng)域。如此龐大的信息資源假如沒(méi)有合理的、高效的方式去獲取,將是巨大的損失。因此,對于深度網(wǎng)爬行技術(shù)的研究具有極為重大的現實(shí)意義和理論價(jià)值。
  常規的網(wǎng)路爬蟲(chóng)在運行中難以發(fā)覺(jué)隱藏在普通網(wǎng)頁(yè)中的信息和規律,缺乏一定的主動(dòng)性和智能性。比如須要輸入用戶(hù)名和密碼的頁(yè)面,或者包含頁(yè)腳導航的頁(yè)面均未能爬行。深度爬蟲(chóng)的設計針對常規網(wǎng)路爬蟲(chóng)的那些不足,將其結構做以改進(jìn),增加了表單剖析和頁(yè)面狀態(tài)保持兩個(gè)部份,其結構如圖4所示,通過(guò)剖析網(wǎng)頁(yè)的結構并將其歸類(lèi)為普通網(wǎng)頁(yè)或存在更多信息的深度網(wǎng)頁(yè),針對深度網(wǎng)頁(yè)構造合適的表單參數而且遞交,以得到更多的頁(yè)面。深度爬蟲(chóng)的流程圖如圖4所示。深度爬蟲(chóng)與常規爬蟲(chóng)的不同是,深度爬蟲(chóng)在下載完成頁(yè)面然后并沒(méi)有立刻遍歷其中的所有超鏈接,而是使用一定的算法將其進(jìn)行分類(lèi),對于不同的類(lèi)別采取不同的方式估算查詢(xún)參數,并將參數再度遞交到服務(wù)器。如果遞交的查詢(xún)參數正確,那么將會(huì )得到隱藏的頁(yè)面和鏈接。深度爬蟲(chóng)的目標是盡可能多地訪(fǎng)問(wèn)和搜集互聯(lián)網(wǎng)上的網(wǎng)頁(yè),由于深度頁(yè)面是通過(guò)遞交表單的形式訪(fǎng)問(wèn),因此爬行深度頁(yè)面存在以下三個(gè)方面的困難:1)深度爬蟲(chóng)須要有高效的算法去應對數目巨大的深層頁(yè)面數據;2)很多服務(wù)器端DeepWeb要求校準表單輸入,如用戶(hù)名、密碼、校驗碼等,如果校準失敗,將不能爬到DeepWeb數據;3)需要JavaScript等腳本支持剖析客戶(hù)端DeepWeb。
  
  [編輯]
  (1)IP地址搜索策略
  IP地址搜索策略是先給爬蟲(chóng)一個(gè)起始的IP地址,然后按照IP地址以遞增的形式搜索本IP地址段后的每一個(gè)地址中的文檔,它完全不考慮各文檔中指向其它Web站點(diǎn)的超級鏈接地址。這種搜索策略的優(yōu)點(diǎn)是搜索比較全面,因此能否發(fā)覺(jué)這些沒(méi)被其它文檔引用的新文檔的信息源;但是缺點(diǎn)是不適宜大規模搜索。
  (2)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是一種在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式。它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超鏈的HTML文件)。例如,在一個(gè)HTML文件中,當一個(gè)超鏈被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,也就是說(shuō)在搜索其余的超鏈結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超鏈走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超鏈。當不再有其他超鏈可選擇時(shí),說(shuō)明搜索早已結束。
  (3)寬度優(yōu)先搜索策略
  寬度優(yōu)先搜索的過(guò)程是先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML文件中有三個(gè)超鏈,選擇其中之一并處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超鏈,而是返回并選擇第二個(gè)超鏈,處理相應的HTML文件,再返回,選擇第三個(gè)超鏈并處理相應的HTML文件。當一層上的所有超鏈都已被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超鏈。
  寬度優(yōu)先搜索策略的優(yōu)點(diǎn):一個(gè)是保證了對淺層的優(yōu)先處理,當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí),不會(huì )造成陷進(jìn)www中的深層文檔中出現出不來(lái)的情況發(fā)生;另一個(gè)是它能在兩個(gè)HTML文件之間找到最短路徑。
  寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費比較長(cháng)的時(shí)間才會(huì )抵達深層的HTML文件。
  [編輯]
  于成龍,于洪波.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)研究[J].東莞理工學(xué)院學(xué)報.2011,5 蔡笑倫.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的發(fā)展趁機[J].科技信息.2010,12
  來(lái)自"https://wiki.mbalib.com/wiki/% ... ot%3B
  本條目對我有幫助8
  賞
  MBA智庫APP
  
  掃一掃,下載MBA智庫APP

請問(wèn)哪些是網(wǎng)絡(luò )爬蟲(chóng)???是干哪些的呢?

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 324 次瀏覽 ? 2020-05-14 08:04 ? 來(lái)自相關(guān)話(huà)題

  
  展開(kāi)全部
  爬蟲(chóng)就是才能手動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)并將網(wǎng)站內容下載出來(lái)的636f70797a686964616f31333366303235的程序或腳本,類(lèi)似一個(gè)機器人,能把他人網(wǎng)站的信息弄到自己的筆記本上,再做一些過(guò)濾,篩選,歸納,整理,排序等等。
  網(wǎng)絡(luò )爬蟲(chóng)能做哪些:數據采集。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。
  
  擴展資料:
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。 實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的 。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。 這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方法,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值 。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略 。
  1) 深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。 爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索, 但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費 。
  2) 廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面,處于較淺目錄層次的頁(yè)面首先被爬行。 當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。 這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題,實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn)爬蟲(chóng)軟件是什么,不足之處在于需較長(cháng)時(shí)間能夠爬行到目錄層次較深的頁(yè)面。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)。 和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求 。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同 。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指 對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。 和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面 ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集 。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1) 統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3) 基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè) 。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的 WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定爬蟲(chóng)軟件是什么,而是采用一種自適應的方式按照原先爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外 Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。 為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè) ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè) 。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web 是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web 頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源 。
  參考資料:
  百度百科-網(wǎng)絡(luò )爬蟲(chóng) 查看全部

  
  展開(kāi)全部
  爬蟲(chóng)就是才能手動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)并將網(wǎng)站內容下載出來(lái)的636f70797a686964616f31333366303235的程序或腳本,類(lèi)似一個(gè)機器人,能把他人網(wǎng)站的信息弄到自己的筆記本上,再做一些過(guò)濾,篩選,歸納,整理,排序等等。
  網(wǎng)絡(luò )爬蟲(chóng)能做哪些:數據采集。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。
  
  擴展資料:
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。 實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的 。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。 這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方法,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值 。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略 。
  1) 深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。 爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索, 但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費 。
  2) 廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面,處于較淺目錄層次的頁(yè)面首先被爬行。 當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。 這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題,實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn)爬蟲(chóng)軟件是什么,不足之處在于需較長(cháng)時(shí)間能夠爬行到目錄層次較深的頁(yè)面。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)。 和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求 。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同 。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指 對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。 和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面 ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集 。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1) 統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3) 基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè) 。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的 WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定爬蟲(chóng)軟件是什么,而是采用一種自適應的方式按照原先爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外 Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。 為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè) ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè) 。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web 是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web 頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源 。
  參考資料:
  百度百科-網(wǎng)絡(luò )爬蟲(chóng)

推薦一些33款開(kāi)源爬蟲(chóng)軟件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 481 次瀏覽 ? 2020-05-13 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  要玩大數據,沒(méi)有數據如何玩?這里推薦一些33款開(kāi)源爬蟲(chóng)軟件給你們。
  爬蟲(chóng),即網(wǎng)路爬蟲(chóng),是一種手動(dòng)獲取網(wǎng)頁(yè)內容的程序。是搜索引擎的重要組成部份,因此搜索引擎優(yōu)化很大程度上就是針對爬蟲(chóng)而作出的優(yōu)化。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。聚焦爬蟲(chóng)的工作流程較為復雜,需要按照一定的網(wǎng)頁(yè)剖析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它將按照一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復上述過(guò)程,直到達到系統的某一條件時(shí)停止。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì )被系統儲存,進(jìn)行一定的剖析、過(guò)濾,并構建索引,以便以后的查詢(xún)和檢索;對于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的剖析結果還可能對之后的抓取過(guò)程給出反饋和指導。
  世界上已然成形的爬蟲(chóng)軟件多達上百種,本文對較為著(zhù)名及常見(jiàn)的開(kāi)源爬蟲(chóng)軟件進(jìn)行梳理爬蟲(chóng)程序,按開(kāi)發(fā)語(yǔ)言進(jìn)行匯總。雖然搜索引擎也有爬蟲(chóng),但本次我匯總的只是爬蟲(chóng)軟件,而非小型、復雜的搜索引擎,因為好多兄弟只是想爬取數據,而非營(yíng)運一個(gè)搜索引擎。
  
  Java爬蟲(chóng)
  1、Arachnid
  Arachnid是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  特點(diǎn):微型爬蟲(chóng)框架,含有一個(gè)大型HTML解析器
  許可證:GPL
  2、crawlzilla
  crawlzilla 是一個(gè)幫你輕松構建搜索引擎的自由軟件,有了它,你就不用借助商業(yè)公司的搜索引擎,也不用再苦惱公司內部網(wǎng)站資料索引的問(wèn)題。
  由 nutch 專(zhuān)案為核心,并整合更多相關(guān)套件,并卡發(fā)設計安裝與管理UI,讓使用者更方便上手。
  crawlzilla不僅爬取基本的 html 外,還能剖析網(wǎng)頁(yè)上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜索引擎不只是網(wǎng)頁(yè)搜索引擎,而是網(wǎng)站的完整資料索引庫。
  擁有英文動(dòng)詞能力,讓你的搜索更精準。
  crawlzilla的特色與目標,最主要就是提供使用者一個(gè)便捷好用易安裝的搜索平臺。
  授權合同: Apache License 2
  開(kāi)發(fā)語(yǔ)言: Java SHELL
  操作系統: Linux
  項目主頁(yè):
  下載地址:
  特點(diǎn):安裝簡(jiǎn)易,擁有英文動(dòng)詞功能
  3、Ex-Crawler
  Ex-Crawler 是一個(gè)網(wǎng)頁(yè)爬蟲(chóng),采用 Java 開(kāi)發(fā),該項目分成兩部份,一個(gè)是守護進(jìn)程,另外一個(gè)是靈活可配置的 Web 爬蟲(chóng)。使用數據庫儲存網(wǎng)頁(yè)信息。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):由守護進(jìn)程執行,使用數據庫儲存網(wǎng)頁(yè)信息
  4、Heritrix
  Heritrix 是一個(gè)由 java 開(kāi)發(fā)的、開(kāi)源的網(wǎng)路爬蟲(chóng),用戶(hù)可以使用它來(lái)從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴展性,方便用戶(hù)實(shí)現自己的抓取邏輯。
  Heritrix采用的是模塊化的設計,各個(gè)模塊由一個(gè)控制器類(lèi)(CrawlController類(lèi))來(lái)協(xié)調,控制器是整體的核心。
  代碼托管:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):嚴格遵循robots文件的排除指示和META robots標簽
  5、heyDr
  
  heyDr是一款基于java的輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架,遵循GNU GPL V3合同。
  用戶(hù)可以通過(guò)heyDr建立自己的垂直資源爬蟲(chóng),用于搭建垂直搜索引擎前期的數據打算。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架
  6、ItSucks
  ItSucks是一個(gè)java web spider(web機器人,爬蟲(chóng))開(kāi)源項目。支持通過(guò)下載模板和正則表達式來(lái)定義下載規則。提供一個(gè)swing GUI操作界面。
  特點(diǎn):提供swing GUI操作界面
  7、jcrawl
  jcrawl是一款精巧性能優(yōu)良的的web爬蟲(chóng),它可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件,基于用戶(hù)定義的符號,比如email、qq。
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量、性能優(yōu)良,可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件
  8、JSpider
  JSpider是一個(gè)用Java實(shí)現的WebSpider,JSpider的執行格式如下:
  jspider [ConfigName]
  URL一定要加上合同名稱(chēng),如:,否則會(huì )報錯。如果市掉ConfigName,則采用默認配置。
  JSpider的行為是由配置文件具體配置的,比如采用哪些插件,結果儲存方法等等都在conf\[ConfigName]\目錄下設置。JSpider默認的配置種類(lèi)極少,用途也不大。但是JSpider十分容易擴充,可以借助它開(kāi)發(fā)強悍的網(wǎng)頁(yè)抓取與數據剖析工具。要做到這種,需要對JSpider的原理有深入的了解,然后按照自己的需求開(kāi)發(fā)插件,撰寫(xiě)配置文件。
  授權合同: LGPL
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能強悍,容易擴充
  9、Leopdo
  用JAVA編撰的web 搜索和爬蟲(chóng),包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  10、MetaSeeker
  是一套完整的網(wǎng)頁(yè)內容抓取、格式化、數據集成、存儲管理和搜索解決方案。
  網(wǎng)絡(luò )爬蟲(chóng)有多種實(shí)現方式,如果依照布署在哪里分,可以分成:
 ?。?)服務(wù)器側:一般是一個(gè)多線(xiàn)程程序,同時(shí)下載多個(gè)目標HTML,可以用PHP, Java, Python(當前太流行)等做,可以速率做得很快,一般綜合搜索引擎的爬蟲(chóng)這樣做。但是,如果對方厭惡爬蟲(chóng),很可能封掉你的IP,服務(wù)器IP又不容易改,另外耗損的帶寬也是很貴的。建議看一下Beautiful soap。
 ?。?)客戶(hù)端:一般實(shí)現定題爬蟲(chóng),或者是聚焦爬蟲(chóng),做綜合搜索引擎不容易成功,而垂直搜訴或則比價(jià)服務(wù)或則推薦引擎,相對容易好多,這類(lèi)爬蟲(chóng)不是哪些頁(yè)面都取的,而是只取你關(guān)系的頁(yè)面,而且只取頁(yè)面上關(guān)心的內容,例如提取黃頁(yè)信息,商品價(jià)錢(qián)信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類(lèi)爬蟲(chóng)可以布署好多,而且可以挺有侵略性,對方很難封鎖。
  MetaSeeker中的網(wǎng)路爬蟲(chóng)就屬于前者。
  MetaSeeker工具包借助Mozilla平臺的能力,只要是Firefox見(jiàn)到的東西,它都能提取。
  MetaSeeker工具包是免費使用的,下載地址:
  特點(diǎn):網(wǎng)頁(yè)抓取、信息提取、數據抽取工具包,操作簡(jiǎn)單
  11、Playfish
  playfish是一個(gè)采用java技術(shù),綜合應用多個(gè)開(kāi)源java組件實(shí)現的網(wǎng)頁(yè)抓取工具,通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性的網(wǎng)頁(yè)抓取工具
  應用開(kāi)源jar包包括httpclient(內容讀取),dom4j(配置文件解析),jericho(html解析),已經(jīng)在 war包的lib下。
  這個(gè)項目目前還挺不成熟,但是功能基本都完成了。要求使用者熟悉XML,熟悉正則表達式。目前通過(guò)這個(gè)工具可以抓取各種峰會(huì ),貼吧,以及各種CMS系統。像Discuz!,phpbb,論壇跟博客的文章,通過(guò)本工具都可以輕松抓取。抓取定義完全采用XML,適合Java開(kāi)發(fā)人員使用。
  使用方式:1.下載一側的.war包導出到eclipse中, 2.使用WebContent/sql下的wcc.sql文件構建一個(gè)范例數據庫, 3.修改src包下wcc.core的dbConfig.txt,將用戶(hù)名與密碼設置成你自己的mysql用戶(hù)名密碼。 4.然后運行SystemCore,運行時(shí)侯會(huì )在控制臺,無(wú)參數會(huì )執行默認的example.xml的配置文件,帶參數時(shí)侯名稱(chēng)為配置文件名。
  系統自帶了3個(gè)事例,分別為baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一個(gè)采用 discuz峰會(huì )的內容。
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性
  12、Spiderman
  Spiderman 是一個(gè)基于微內核+插件式構架的網(wǎng)路蜘蛛,它的目標是通過(guò)簡(jiǎn)單的方式能夠將復雜的目標網(wǎng)頁(yè)信息抓取并解析為自己所須要的業(yè)務(wù)數據。
  怎么使用?
  首先,確定好你的目標網(wǎng)站以及目標網(wǎng)頁(yè)(即某一類(lèi)你想要獲取數據的網(wǎng)頁(yè),例如網(wǎng)易新聞的新聞頁(yè)面)
  然后,打開(kāi)目標頁(yè)面,分析頁(yè)面的HTML結構,得到你想要數據的XPath,具體XPath如何獲取請看下文。
  最后,在一個(gè)xml配置文件里填寫(xiě)好參數,運行Spiderman吧!
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):靈活、擴展性強,微內核+插件式構架,通過(guò)簡(jiǎn)單的配置就可以完成數據抓取,無(wú)需編撰一句代碼
  13、webmagic
  webmagic的是一個(gè)無(wú)須配置、便于二次開(kāi)發(fā)的爬蟲(chóng)框架,它提供簡(jiǎn)單靈活的API,只需少量代碼即可實(shí)現一個(gè)爬蟲(chóng)。
  
  webmagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
  
  webmagic包含強悍的頁(yè)面抽取功能,開(kāi)發(fā)者可以方便的使用css selector、xpath和正則表達式進(jìn)行鏈接和內容的提取,支持多個(gè)選擇器鏈式調用。
  webmagic的使用文檔:
  查看源代碼:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能覆蓋整個(gè)爬蟲(chóng)生命周期,使用Xpath和正則表達式進(jìn)行鏈接和內容的提取。
  備注:這是一款國產(chǎn)開(kāi)源軟件,由黃億華貢獻
  14、Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  其實(shí)現原理是,根據預先定義的配置文件用httpclient獲取頁(yè)面的全部?jì)热荩P(guān)于httpclient的內容,本博有些文章已介紹),然后運用XPath、XQuery、正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是采用類(lèi)似的原理實(shí)現的。Web-Harvest應用,關(guān)鍵就是理解和定義配置文件,其他的就是考慮如何處理數據的Java代碼。當然在爬蟲(chóng)開(kāi)始前,也可以把Java變量填充到配置文件中,實(shí)現動(dòng)態(tài)的配置。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Java
  特點(diǎn):運用XSLT、XQuery、正則表達式等技術(shù)來(lái)實(shí)現對Text或XML的操作,具有可視化的界面
  15、WebSPHINX
  WebSPHINX是一個(gè)Java類(lèi)包和Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。Web爬蟲(chóng)(也叫作機器人或蜘蛛)是可以手動(dòng)瀏覽與處理Web頁(yè)面的程序。WebSPHINX由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包。
  授權合同:Apache
  開(kāi)發(fā)語(yǔ)言:Java
  特點(diǎn):由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包
  16、YaCy
  YaCy基于p2p的分布式Web搜索引擎.同時(shí)也是一個(gè)Http緩存代理服務(wù)器.這個(gè)項目是建立基于p2p Web索引網(wǎng)路的一個(gè)新技巧.它可以搜索你自己的或全局的索引,也可以Crawl自己的網(wǎng)頁(yè)或啟動(dòng)分布式Crawling等.
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: Java Perl
  操作系統:跨平臺
  特點(diǎn):基于P2P的分布式Web搜索引擎
  Python爬蟲(chóng)
  17、QuickRecon
  QuickRecon是一個(gè)簡(jiǎn)單的信息搜集工具,它可以幫助你查找子域名名稱(chēng)、perform zone transfe、收集電子郵件地址和使用microformats找尋人際關(guān)系等。QuickRecon使用python編撰,支持linux和 windows操作系統。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統: Windows Linux
  特點(diǎn):具有查找子域名名稱(chēng)、收集電子郵件地址并找尋人際關(guān)系等功能
  18、PyRailgun
  這是一個(gè)十分簡(jiǎn)單易用的抓取工具。支持抓取javascript渲染的頁(yè)面的簡(jiǎn)單實(shí)用高效的python網(wǎng)頁(yè)爬蟲(chóng)抓取模塊
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺 Windows Linux OS X
  特點(diǎn):簡(jiǎn)潔、輕量、高效的網(wǎng)頁(yè)抓取框架
  備注:此軟件也是由國人開(kāi)放
  github下載:
  #readme
  19、Scrapy
  Scrapy 是一套基于基于Twisted的異步處理框架,純python實(shí)現的爬蟲(chóng)框架,用戶(hù)只須要訂制開(kāi)發(fā)幾個(gè)模塊就可以輕松的實(shí)現一個(gè)爬蟲(chóng),用來(lái)抓取網(wǎng)頁(yè)內容以及各類(lèi)圖片,非常之便捷~
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺
  github源代碼:
  特點(diǎn):基于Twisted的異步處理框架,文檔齊全
  C++++爬蟲(chóng)
  20、hispider
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架,沒(méi)有細化需求,目前只是能提取URL, URL排重,異步DNS解析,隊列化任務(wù),支持N機分布式下載,支持網(wǎng)站定向下載(需要配置hispiderd.ini whitelist).
  特征和用法:
  基于unix/linux系統的開(kāi)發(fā)
  異步DNS解析
  URL排重
  支持HTTP 壓縮編碼傳輸 gzip/deflate
  字符集判定手動(dòng)轉換成UTF-8編碼
  文檔壓縮儲存
  支持多下載節點(diǎn)分布式下載
  支持網(wǎng)站定向下載(需要配置 hispiderd.ini whitelist )
  可通過(guò) :3721/查看下載情況統計,下載任務(wù)控制(可停止和恢復任務(wù))
  依賴(lài)基本通訊庫libevbase 和 libsbase (安裝的時(shí)侯須要先安裝這個(gè)兩個(gè)庫).
  工作流程:
  從中心節點(diǎn)取URL(包括URL對應的任務(wù)號, IP和port,也可能須要自己解析)
  連接服務(wù)器發(fā)送懇求
  等待數據頭判定是否須要的數據(目前主要取text類(lèi)型的數據)
  等待完成數據(有length頭的直接等待說(shuō)明寬度的數據否則等待比較大的數字之后設置超時(shí))
  數據完成或則超時(shí), zlib壓縮數據返回給中心服務(wù)器,數據可能包括自己解析DNS信息,壓縮后數據寬度+壓縮后數據,如果出錯就直接返回任務(wù)號以及相關(guān)信息
  中心服務(wù)器收到帶有任務(wù)號的數據,查看是否包括數據,如果沒(méi)有數據直接置任務(wù)號對應的狀態(tài)為錯誤,如果有數據提取數據種link 然后儲存數據到文檔文件.
  完成后返回一個(gè)新的任務(wù).
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):支持多機分布式下載,支持網(wǎng)站定向下載
  21、larbin
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè)。
  利用larbin,我們可以輕易的獲取/確定單個(gè)網(wǎng)站的所有鏈接,甚至可以鏡像一個(gè)網(wǎng)站;也可以用它構建url 列表群,例如針對所有的網(wǎng)頁(yè)進(jìn)行 url retrive后,進(jìn)行xml的連結的獲取?;蛘呤?mp3,或者訂制larbin,可以作為搜索引擎的信息的來(lái)源。
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):高性能的爬蟲(chóng)軟件,只負責抓取不負責解析
  22、Methabot
  Methabot 是一個(gè)經(jīng)過(guò)速率優(yōu)化的高可配置的 WEB、FTP、本地文件系統的爬蟲(chóng)軟件。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Windows Linux
  特點(diǎn):過(guò)速率優(yōu)化、可抓取WEB、FTP及本地文件系統
  源代碼:
  爬蟲(chóng)
  23、NWebCrawler
  NWebCrawler是一款開(kāi)源,C#開(kāi)發(fā)網(wǎng)路爬蟲(chóng)程序。
  特性:
  可配置:線(xiàn)程數,等待時(shí)間,連接超時(shí),允許MIME類(lèi)型和優(yōu)先級,下載文件夾。
  統計信息:URL數目,總下載文件,總下載字節數,CPU利用率和可用顯存。
  Preferential crawler:用戶(hù)可以設置優(yōu)先級的MIME類(lèi)型。
  Robust: 10+ URL normalization rules, crawler trap avoiding rules.
  授權合同: GPLv2
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  項目主頁(yè):
  特點(diǎn):統計信息、執行過(guò)程可視化
  24、Sinawler
  國內第一個(gè)針對微博數據的爬蟲(chóng)程序!原名“新浪微博爬蟲(chóng)”。
  登錄后,可以指定用戶(hù)為起點(diǎn),以該用戶(hù)的關(guān)注人、粉絲為線(xiàn)索,延人脈關(guān)系收集用戶(hù)基本信息、微博數據、評論數據。
  該應用獲取的數據可作為科研、與新浪微博相關(guān)的研制等的數據支持,但切勿用于商業(yè)用途。該應用基于.NET2.0框架,需SQL SERVER作為后臺數據庫,并提供了針對SQL Server的數據庫腳本文件。
  另外爬蟲(chóng)程序,由于新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數目的限制、獲取微博數目的限制等)
  本程序版權歸作者所有。你可以免費:拷貝、分發(fā)、呈現和演出當前作品,制作派生作品。你不可將當前作品用于商業(yè)目的。
  5.x版本早已發(fā)布!該版本共有6個(gè)后臺工作線(xiàn)程:爬取用戶(hù)基本信息的機器人、爬取用戶(hù)關(guān)系的機器人、爬取用戶(hù)標簽的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節懇求頻度的機器人。更高的性能!最大限度挖掘爬蟲(chóng)潛力!以現今測試的結果看,已經(jīng)才能滿(mǎn)足自用。
  本程序的特征:
  6個(gè)后臺工作線(xiàn)程,最大限度挖掘爬蟲(chóng)性能潛力!
  界面上提供參數設置,靈活便捷
  拋棄app.config配置文件,自己實(shí)現配置信息的加密儲存,保護數據庫賬號信息
  自動(dòng)調整懇求頻度,防止超限,也防止過(guò)慢,降低效率
  任意對爬蟲(chóng)控制,可隨時(shí)暫停、繼續、停止爬蟲(chóng)
  良好的用戶(hù)體驗
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  25、spidernet
  spidernet是一個(gè)以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持text/html資源的獲取.可以設定爬行深度,最大下載字節數限制,支持gzip解碼,支持以gbk(gb2312)和utf8編碼的資源;存儲于sqlite數據文件.
  源碼中TODO:標記描述了未完成功能,希望遞交你的代碼.
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  github源代碼:
  特點(diǎn):以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持以GBK (gb2312)和utf8編碼的資源,使用sqlite儲存數據
  26、Web Crawler
  mart and Simple Web Crawler是一個(gè)Web爬蟲(chóng)框架。集成Lucene支持。該爬蟲(chóng)可以從單個(gè)鏈接或一個(gè)鏈接字段開(kāi)始,提供兩種遍歷模式:最大迭代和最大深度??梢栽O置過(guò)濾器限制爬回去的鏈接,默認提供三個(gè)過(guò)濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個(gè)過(guò)濾器可用AND、OR和NOT聯(lián)合。在解析過(guò)程或頁(yè)面加載前后都可以加監聽(tīng)器。介紹內容來(lái)自Open-Open
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  授權合同: LGPL
  特點(diǎn):多線(xiàn)程,支持抓取PDF/DOC/EXCEL等文檔來(lái)源
  27、網(wǎng)絡(luò )礦工
  網(wǎng)站數據采集軟件網(wǎng)路礦工[url=http://www.hqbet6457.com/]采集器(原soukey采摘)
  Soukey采摘網(wǎng)站數據采集軟件是一款基于.Net平臺的開(kāi)源軟件,也是網(wǎng)站數據采集軟件類(lèi)型中惟一一款開(kāi)源軟件。盡管Soukey采摘開(kāi)源,但并不會(huì )影響軟件功能的提供,甚至要比一些商用軟件的功能還要豐富。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  特點(diǎn):功能豐富,毫不遜色于商業(yè)軟件
  PHP爬蟲(chóng)
  28、OpenWebSpider
  OpenWebSpider是一個(gè)開(kāi)源多線(xiàn)程Web Spider(robot:機器人,crawler:爬蟲(chóng))和包含許多有趣功能的搜索引擎。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):開(kāi)源多線(xiàn)程網(wǎng)絡(luò )爬蟲(chóng),有許多有趣的功能
  29、PhpDig
  PhpDig是一個(gè)采用PHP開(kāi)發(fā)的Web爬蟲(chóng)和搜索引擎。通過(guò)對動(dòng)態(tài)和靜態(tài)頁(yè)面進(jìn)行索引構建一個(gè)詞匯表。當搜索查詢(xún)時(shí),它將按一定的排序規則顯示包含關(guān)鍵字的搜索結果頁(yè)面。PhpDig包含一個(gè)模板系統并才能索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用于專(zhuān)業(yè)化更強、層次更深的個(gè)性化搜索引擎,利用它構建針對某一領(lǐng)域的垂直搜索引擎是最好的選擇。
  演示:
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):具有采集網(wǎng)頁(yè)內容、提交表單功能
  30、ThinkUp
  ThinkUp 是一個(gè)可以采集推特,facebook等社交網(wǎng)路數據的社會(huì )媒體視角引擎。通過(guò)采集個(gè)人的社交網(wǎng)絡(luò )帳號中的數據,對其存檔以及處理的交互剖析工具,并將數據圖形化便于更直觀(guān)的查看。
  
  
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  github源碼:
  特點(diǎn):采集推特、臉譜等社交網(wǎng)路數據的社會(huì )媒體視角引擎,可進(jìn)行交互剖析并將結果以可視化方式詮釋
  31、微購
  微購社會(huì )化購物系統是一款基于ThinkPHP框架開(kāi)發(fā)的開(kāi)源的購物分享系統,同時(shí)它也是一套針對站長(cháng)、開(kāi)源的的淘寶客網(wǎng)站程序,它整合了天貓、天貓、淘寶客等300多家商品數據采集接口,為廣大的淘寶客站長(cháng)提供傻瓜式淘客建站服務(wù),會(huì )HTML都會(huì )做程序模板,免費開(kāi)放下載,是廣大淘客站長(cháng)的首選。 查看全部

  
  要玩大數據,沒(méi)有數據如何玩?這里推薦一些33款開(kāi)源爬蟲(chóng)軟件給你們。
  爬蟲(chóng),即網(wǎng)路爬蟲(chóng),是一種手動(dòng)獲取網(wǎng)頁(yè)內容的程序。是搜索引擎的重要組成部份,因此搜索引擎優(yōu)化很大程度上就是針對爬蟲(chóng)而作出的優(yōu)化。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。聚焦爬蟲(chóng)的工作流程較為復雜,需要按照一定的網(wǎng)頁(yè)剖析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它將按照一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復上述過(guò)程,直到達到系統的某一條件時(shí)停止。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì )被系統儲存,進(jìn)行一定的剖析、過(guò)濾,并構建索引,以便以后的查詢(xún)和檢索;對于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的剖析結果還可能對之后的抓取過(guò)程給出反饋和指導。
  世界上已然成形的爬蟲(chóng)軟件多達上百種,本文對較為著(zhù)名及常見(jiàn)的開(kāi)源爬蟲(chóng)軟件進(jìn)行梳理爬蟲(chóng)程序,按開(kāi)發(fā)語(yǔ)言進(jìn)行匯總。雖然搜索引擎也有爬蟲(chóng),但本次我匯總的只是爬蟲(chóng)軟件,而非小型、復雜的搜索引擎,因為好多兄弟只是想爬取數據,而非營(yíng)運一個(gè)搜索引擎。
  
  Java爬蟲(chóng)
  1、Arachnid
  Arachnid是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  特點(diǎn):微型爬蟲(chóng)框架,含有一個(gè)大型HTML解析器
  許可證:GPL
  2、crawlzilla
  crawlzilla 是一個(gè)幫你輕松構建搜索引擎的自由軟件,有了它,你就不用借助商業(yè)公司的搜索引擎,也不用再苦惱公司內部網(wǎng)站資料索引的問(wèn)題。
  由 nutch 專(zhuān)案為核心,并整合更多相關(guān)套件,并卡發(fā)設計安裝與管理UI,讓使用者更方便上手。
  crawlzilla不僅爬取基本的 html 外,還能剖析網(wǎng)頁(yè)上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜索引擎不只是網(wǎng)頁(yè)搜索引擎,而是網(wǎng)站的完整資料索引庫。
  擁有英文動(dòng)詞能力,讓你的搜索更精準。
  crawlzilla的特色與目標,最主要就是提供使用者一個(gè)便捷好用易安裝的搜索平臺。
  授權合同: Apache License 2
  開(kāi)發(fā)語(yǔ)言: Java SHELL
  操作系統: Linux
  項目主頁(yè):
  下載地址:
  特點(diǎn):安裝簡(jiǎn)易,擁有英文動(dòng)詞功能
  3、Ex-Crawler
  Ex-Crawler 是一個(gè)網(wǎng)頁(yè)爬蟲(chóng),采用 Java 開(kāi)發(fā),該項目分成兩部份,一個(gè)是守護進(jìn)程,另外一個(gè)是靈活可配置的 Web 爬蟲(chóng)。使用數據庫儲存網(wǎng)頁(yè)信息。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):由守護進(jìn)程執行,使用數據庫儲存網(wǎng)頁(yè)信息
  4、Heritrix
  Heritrix 是一個(gè)由 java 開(kāi)發(fā)的、開(kāi)源的網(wǎng)路爬蟲(chóng),用戶(hù)可以使用它來(lái)從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴展性,方便用戶(hù)實(shí)現自己的抓取邏輯。
  Heritrix采用的是模塊化的設計,各個(gè)模塊由一個(gè)控制器類(lèi)(CrawlController類(lèi))來(lái)協(xié)調,控制器是整體的核心。
  代碼托管:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):嚴格遵循robots文件的排除指示和META robots標簽
  5、heyDr
  
  heyDr是一款基于java的輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架,遵循GNU GPL V3合同。
  用戶(hù)可以通過(guò)heyDr建立自己的垂直資源爬蟲(chóng),用于搭建垂直搜索引擎前期的數據打算。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架
  6、ItSucks
  ItSucks是一個(gè)java web spider(web機器人,爬蟲(chóng))開(kāi)源項目。支持通過(guò)下載模板和正則表達式來(lái)定義下載規則。提供一個(gè)swing GUI操作界面。
  特點(diǎn):提供swing GUI操作界面
  7、jcrawl
  jcrawl是一款精巧性能優(yōu)良的的web爬蟲(chóng),它可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件,基于用戶(hù)定義的符號,比如email、qq。
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量、性能優(yōu)良,可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件
  8、JSpider
  JSpider是一個(gè)用Java實(shí)現的WebSpider,JSpider的執行格式如下:
  jspider [ConfigName]
  URL一定要加上合同名稱(chēng),如:,否則會(huì )報錯。如果市掉ConfigName,則采用默認配置。
  JSpider的行為是由配置文件具體配置的,比如采用哪些插件,結果儲存方法等等都在conf\[ConfigName]\目錄下設置。JSpider默認的配置種類(lèi)極少,用途也不大。但是JSpider十分容易擴充,可以借助它開(kāi)發(fā)強悍的網(wǎng)頁(yè)抓取與數據剖析工具。要做到這種,需要對JSpider的原理有深入的了解,然后按照自己的需求開(kāi)發(fā)插件,撰寫(xiě)配置文件。
  授權合同: LGPL
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能強悍,容易擴充
  9、Leopdo
  用JAVA編撰的web 搜索和爬蟲(chóng),包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  10、MetaSeeker
  是一套完整的網(wǎng)頁(yè)內容抓取、格式化、數據集成、存儲管理和搜索解決方案。
  網(wǎng)絡(luò )爬蟲(chóng)有多種實(shí)現方式,如果依照布署在哪里分,可以分成:
 ?。?)服務(wù)器側:一般是一個(gè)多線(xiàn)程程序,同時(shí)下載多個(gè)目標HTML,可以用PHP, Java, Python(當前太流行)等做,可以速率做得很快,一般綜合搜索引擎的爬蟲(chóng)這樣做。但是,如果對方厭惡爬蟲(chóng),很可能封掉你的IP,服務(wù)器IP又不容易改,另外耗損的帶寬也是很貴的。建議看一下Beautiful soap。
 ?。?)客戶(hù)端:一般實(shí)現定題爬蟲(chóng),或者是聚焦爬蟲(chóng),做綜合搜索引擎不容易成功,而垂直搜訴或則比價(jià)服務(wù)或則推薦引擎,相對容易好多,這類(lèi)爬蟲(chóng)不是哪些頁(yè)面都取的,而是只取你關(guān)系的頁(yè)面,而且只取頁(yè)面上關(guān)心的內容,例如提取黃頁(yè)信息,商品價(jià)錢(qián)信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類(lèi)爬蟲(chóng)可以布署好多,而且可以挺有侵略性,對方很難封鎖。
  MetaSeeker中的網(wǎng)路爬蟲(chóng)就屬于前者。
  MetaSeeker工具包借助Mozilla平臺的能力,只要是Firefox見(jiàn)到的東西,它都能提取。
  MetaSeeker工具包是免費使用的,下載地址:
  特點(diǎn):網(wǎng)頁(yè)抓取、信息提取、數據抽取工具包,操作簡(jiǎn)單
  11、Playfish
  playfish是一個(gè)采用java技術(shù),綜合應用多個(gè)開(kāi)源java組件實(shí)現的網(wǎng)頁(yè)抓取工具,通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性的網(wǎng)頁(yè)抓取工具
  應用開(kāi)源jar包包括httpclient(內容讀取),dom4j(配置文件解析),jericho(html解析),已經(jīng)在 war包的lib下。
  這個(gè)項目目前還挺不成熟,但是功能基本都完成了。要求使用者熟悉XML,熟悉正則表達式。目前通過(guò)這個(gè)工具可以抓取各種峰會(huì ),貼吧,以及各種CMS系統。像Discuz!,phpbb,論壇跟博客的文章,通過(guò)本工具都可以輕松抓取。抓取定義完全采用XML,適合Java開(kāi)發(fā)人員使用。
  使用方式:1.下載一側的.war包導出到eclipse中, 2.使用WebContent/sql下的wcc.sql文件構建一個(gè)范例數據庫, 3.修改src包下wcc.core的dbConfig.txt,將用戶(hù)名與密碼設置成你自己的mysql用戶(hù)名密碼。 4.然后運行SystemCore,運行時(shí)侯會(huì )在控制臺,無(wú)參數會(huì )執行默認的example.xml的配置文件,帶參數時(shí)侯名稱(chēng)為配置文件名。
  系統自帶了3個(gè)事例,分別為baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一個(gè)采用 discuz峰會(huì )的內容。
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性
  12、Spiderman
  Spiderman 是一個(gè)基于微內核+插件式構架的網(wǎng)路蜘蛛,它的目標是通過(guò)簡(jiǎn)單的方式能夠將復雜的目標網(wǎng)頁(yè)信息抓取并解析為自己所須要的業(yè)務(wù)數據。
  怎么使用?
  首先,確定好你的目標網(wǎng)站以及目標網(wǎng)頁(yè)(即某一類(lèi)你想要獲取數據的網(wǎng)頁(yè),例如網(wǎng)易新聞的新聞頁(yè)面)
  然后,打開(kāi)目標頁(yè)面,分析頁(yè)面的HTML結構,得到你想要數據的XPath,具體XPath如何獲取請看下文。
  最后,在一個(gè)xml配置文件里填寫(xiě)好參數,運行Spiderman吧!
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):靈活、擴展性強,微內核+插件式構架,通過(guò)簡(jiǎn)單的配置就可以完成數據抓取,無(wú)需編撰一句代碼
  13、webmagic
  webmagic的是一個(gè)無(wú)須配置、便于二次開(kāi)發(fā)的爬蟲(chóng)框架,它提供簡(jiǎn)單靈活的API,只需少量代碼即可實(shí)現一個(gè)爬蟲(chóng)。
  
  webmagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
  
  webmagic包含強悍的頁(yè)面抽取功能,開(kāi)發(fā)者可以方便的使用css selector、xpath和正則表達式進(jìn)行鏈接和內容的提取,支持多個(gè)選擇器鏈式調用。
  webmagic的使用文檔:
  查看源代碼:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能覆蓋整個(gè)爬蟲(chóng)生命周期,使用Xpath和正則表達式進(jìn)行鏈接和內容的提取。
  備注:這是一款國產(chǎn)開(kāi)源軟件,由黃億華貢獻
  14、Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  其實(shí)現原理是,根據預先定義的配置文件用httpclient獲取頁(yè)面的全部?jì)热荩P(guān)于httpclient的內容,本博有些文章已介紹),然后運用XPath、XQuery、正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是采用類(lèi)似的原理實(shí)現的。Web-Harvest應用,關(guān)鍵就是理解和定義配置文件,其他的就是考慮如何處理數據的Java代碼。當然在爬蟲(chóng)開(kāi)始前,也可以把Java變量填充到配置文件中,實(shí)現動(dòng)態(tài)的配置。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Java
  特點(diǎn):運用XSLT、XQuery、正則表達式等技術(shù)來(lái)實(shí)現對Text或XML的操作,具有可視化的界面
  15、WebSPHINX
  WebSPHINX是一個(gè)Java類(lèi)包和Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。Web爬蟲(chóng)(也叫作機器人或蜘蛛)是可以手動(dòng)瀏覽與處理Web頁(yè)面的程序。WebSPHINX由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包。
  授權合同:Apache
  開(kāi)發(fā)語(yǔ)言:Java
  特點(diǎn):由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包
  16、YaCy
  YaCy基于p2p的分布式Web搜索引擎.同時(shí)也是一個(gè)Http緩存代理服務(wù)器.這個(gè)項目是建立基于p2p Web索引網(wǎng)路的一個(gè)新技巧.它可以搜索你自己的或全局的索引,也可以Crawl自己的網(wǎng)頁(yè)或啟動(dòng)分布式Crawling等.
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: Java Perl
  操作系統:跨平臺
  特點(diǎn):基于P2P的分布式Web搜索引擎
  Python爬蟲(chóng)
  17、QuickRecon
  QuickRecon是一個(gè)簡(jiǎn)單的信息搜集工具,它可以幫助你查找子域名名稱(chēng)、perform zone transfe、收集電子郵件地址和使用microformats找尋人際關(guān)系等。QuickRecon使用python編撰,支持linux和 windows操作系統。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統: Windows Linux
  特點(diǎn):具有查找子域名名稱(chēng)、收集電子郵件地址并找尋人際關(guān)系等功能
  18、PyRailgun
  這是一個(gè)十分簡(jiǎn)單易用的抓取工具。支持抓取javascript渲染的頁(yè)面的簡(jiǎn)單實(shí)用高效的python網(wǎng)頁(yè)爬蟲(chóng)抓取模塊
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺 Windows Linux OS X
  特點(diǎn):簡(jiǎn)潔、輕量、高效的網(wǎng)頁(yè)抓取框架
  備注:此軟件也是由國人開(kāi)放
  github下載:
  #readme
  19、Scrapy
  Scrapy 是一套基于基于Twisted的異步處理框架,純python實(shí)現的爬蟲(chóng)框架,用戶(hù)只須要訂制開(kāi)發(fā)幾個(gè)模塊就可以輕松的實(shí)現一個(gè)爬蟲(chóng),用來(lái)抓取網(wǎng)頁(yè)內容以及各類(lèi)圖片,非常之便捷~
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺
  github源代碼:
  特點(diǎn):基于Twisted的異步處理框架,文檔齊全
  C++++爬蟲(chóng)
  20、hispider
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架,沒(méi)有細化需求,目前只是能提取URL, URL排重,異步DNS解析,隊列化任務(wù),支持N機分布式下載,支持網(wǎng)站定向下載(需要配置hispiderd.ini whitelist).
  特征和用法:
  基于unix/linux系統的開(kāi)發(fā)
  異步DNS解析
  URL排重
  支持HTTP 壓縮編碼傳輸 gzip/deflate
  字符集判定手動(dòng)轉換成UTF-8編碼
  文檔壓縮儲存
  支持多下載節點(diǎn)分布式下載
  支持網(wǎng)站定向下載(需要配置 hispiderd.ini whitelist )
  可通過(guò) :3721/查看下載情況統計,下載任務(wù)控制(可停止和恢復任務(wù))
  依賴(lài)基本通訊庫libevbase 和 libsbase (安裝的時(shí)侯須要先安裝這個(gè)兩個(gè)庫).
  工作流程:
  從中心節點(diǎn)取URL(包括URL對應的任務(wù)號, IP和port,也可能須要自己解析)
  連接服務(wù)器發(fā)送懇求
  等待數據頭判定是否須要的數據(目前主要取text類(lèi)型的數據)
  等待完成數據(有length頭的直接等待說(shuō)明寬度的數據否則等待比較大的數字之后設置超時(shí))
  數據完成或則超時(shí), zlib壓縮數據返回給中心服務(wù)器,數據可能包括自己解析DNS信息,壓縮后數據寬度+壓縮后數據,如果出錯就直接返回任務(wù)號以及相關(guān)信息
  中心服務(wù)器收到帶有任務(wù)號的數據,查看是否包括數據,如果沒(méi)有數據直接置任務(wù)號對應的狀態(tài)為錯誤,如果有數據提取數據種link 然后儲存數據到文檔文件.
  完成后返回一個(gè)新的任務(wù).
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):支持多機分布式下載,支持網(wǎng)站定向下載
  21、larbin
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè)。
  利用larbin,我們可以輕易的獲取/確定單個(gè)網(wǎng)站的所有鏈接,甚至可以鏡像一個(gè)網(wǎng)站;也可以用它構建url 列表群,例如針對所有的網(wǎng)頁(yè)進(jìn)行 url retrive后,進(jìn)行xml的連結的獲取?;蛘呤?mp3,或者訂制larbin,可以作為搜索引擎的信息的來(lái)源。
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):高性能的爬蟲(chóng)軟件,只負責抓取不負責解析
  22、Methabot
  Methabot 是一個(gè)經(jīng)過(guò)速率優(yōu)化的高可配置的 WEB、FTP、本地文件系統的爬蟲(chóng)軟件。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Windows Linux
  特點(diǎn):過(guò)速率優(yōu)化、可抓取WEB、FTP及本地文件系統
  源代碼:
  爬蟲(chóng)
  23、NWebCrawler
  NWebCrawler是一款開(kāi)源,C#開(kāi)發(fā)網(wǎng)路爬蟲(chóng)程序。
  特性:
  可配置:線(xiàn)程數,等待時(shí)間,連接超時(shí),允許MIME類(lèi)型和優(yōu)先級,下載文件夾。
  統計信息:URL數目,總下載文件,總下載字節數,CPU利用率和可用顯存。
  Preferential crawler:用戶(hù)可以設置優(yōu)先級的MIME類(lèi)型。
  Robust: 10+ URL normalization rules, crawler trap avoiding rules.
  授權合同: GPLv2
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  項目主頁(yè):
  特點(diǎn):統計信息、執行過(guò)程可視化
  24、Sinawler
  國內第一個(gè)針對微博數據的爬蟲(chóng)程序!原名“新浪微博爬蟲(chóng)”。
  登錄后,可以指定用戶(hù)為起點(diǎn),以該用戶(hù)的關(guān)注人、粉絲為線(xiàn)索,延人脈關(guān)系收集用戶(hù)基本信息、微博數據、評論數據。
  該應用獲取的數據可作為科研、與新浪微博相關(guān)的研制等的數據支持,但切勿用于商業(yè)用途。該應用基于.NET2.0框架,需SQL SERVER作為后臺數據庫,并提供了針對SQL Server的數據庫腳本文件。
  另外爬蟲(chóng)程序,由于新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數目的限制、獲取微博數目的限制等)
  本程序版權歸作者所有。你可以免費:拷貝、分發(fā)、呈現和演出當前作品,制作派生作品。你不可將當前作品用于商業(yè)目的。
  5.x版本早已發(fā)布!該版本共有6個(gè)后臺工作線(xiàn)程:爬取用戶(hù)基本信息的機器人、爬取用戶(hù)關(guān)系的機器人、爬取用戶(hù)標簽的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節懇求頻度的機器人。更高的性能!最大限度挖掘爬蟲(chóng)潛力!以現今測試的結果看,已經(jīng)才能滿(mǎn)足自用。
  本程序的特征:
  6個(gè)后臺工作線(xiàn)程,最大限度挖掘爬蟲(chóng)性能潛力!
  界面上提供參數設置,靈活便捷
  拋棄app.config配置文件,自己實(shí)現配置信息的加密儲存,保護數據庫賬號信息
  自動(dòng)調整懇求頻度,防止超限,也防止過(guò)慢,降低效率
  任意對爬蟲(chóng)控制,可隨時(shí)暫停、繼續、停止爬蟲(chóng)
  良好的用戶(hù)體驗
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  25、spidernet
  spidernet是一個(gè)以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持text/html資源的獲取.可以設定爬行深度,最大下載字節數限制,支持gzip解碼,支持以gbk(gb2312)和utf8編碼的資源;存儲于sqlite數據文件.
  源碼中TODO:標記描述了未完成功能,希望遞交你的代碼.
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  github源代碼:
  特點(diǎn):以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持以GBK (gb2312)和utf8編碼的資源,使用sqlite儲存數據
  26、Web Crawler
  mart and Simple Web Crawler是一個(gè)Web爬蟲(chóng)框架。集成Lucene支持。該爬蟲(chóng)可以從單個(gè)鏈接或一個(gè)鏈接字段開(kāi)始,提供兩種遍歷模式:最大迭代和最大深度??梢栽O置過(guò)濾器限制爬回去的鏈接,默認提供三個(gè)過(guò)濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個(gè)過(guò)濾器可用AND、OR和NOT聯(lián)合。在解析過(guò)程或頁(yè)面加載前后都可以加監聽(tīng)器。介紹內容來(lái)自Open-Open
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  授權合同: LGPL
  特點(diǎn):多線(xiàn)程,支持抓取PDF/DOC/EXCEL等文檔來(lái)源
  27、網(wǎng)絡(luò )礦工
  網(wǎng)站數據采集軟件網(wǎng)路礦工[url=http://www.hqbet6457.com/]采集器(原soukey采摘)
  Soukey采摘網(wǎng)站數據采集軟件是一款基于.Net平臺的開(kāi)源軟件,也是網(wǎng)站數據采集軟件類(lèi)型中惟一一款開(kāi)源軟件。盡管Soukey采摘開(kāi)源,但并不會(huì )影響軟件功能的提供,甚至要比一些商用軟件的功能還要豐富。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  特點(diǎn):功能豐富,毫不遜色于商業(yè)軟件
  PHP爬蟲(chóng)
  28、OpenWebSpider
  OpenWebSpider是一個(gè)開(kāi)源多線(xiàn)程Web Spider(robot:機器人,crawler:爬蟲(chóng))和包含許多有趣功能的搜索引擎。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):開(kāi)源多線(xiàn)程網(wǎng)絡(luò )爬蟲(chóng),有許多有趣的功能
  29、PhpDig
  PhpDig是一個(gè)采用PHP開(kāi)發(fā)的Web爬蟲(chóng)和搜索引擎。通過(guò)對動(dòng)態(tài)和靜態(tài)頁(yè)面進(jìn)行索引構建一個(gè)詞匯表。當搜索查詢(xún)時(shí),它將按一定的排序規則顯示包含關(guān)鍵字的搜索結果頁(yè)面。PhpDig包含一個(gè)模板系統并才能索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用于專(zhuān)業(yè)化更強、層次更深的個(gè)性化搜索引擎,利用它構建針對某一領(lǐng)域的垂直搜索引擎是最好的選擇。
  演示:
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):具有采集網(wǎng)頁(yè)內容、提交表單功能
  30、ThinkUp
  ThinkUp 是一個(gè)可以采集推特,facebook等社交網(wǎng)路數據的社會(huì )媒體視角引擎。通過(guò)采集個(gè)人的社交網(wǎng)絡(luò )帳號中的數據,對其存檔以及處理的交互剖析工具,并將數據圖形化便于更直觀(guān)的查看。
  
  
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  github源碼:
  特點(diǎn):采集推特、臉譜等社交網(wǎng)路數據的社會(huì )媒體視角引擎,可進(jìn)行交互剖析并將結果以可視化方式詮釋
  31、微購
  微購社會(huì )化購物系統是一款基于ThinkPHP框架開(kāi)發(fā)的開(kāi)源的購物分享系統,同時(shí)它也是一套針對站長(cháng)、開(kāi)源的的淘寶客網(wǎng)站程序,它整合了天貓、天貓、淘寶客等300多家商品數據采集接口,為廣大的淘寶客站長(cháng)提供傻瓜式淘客建站服務(wù),會(huì )HTML都會(huì )做程序模板,免費開(kāi)放下載,是廣大淘客站長(cháng)的首選。

網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的定義與反爬蟲(chóng)方法剖析

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 454 次瀏覽 ? 2020-05-11 08:03 ? 來(lái)自相關(guān)話(huà)題

  Web是一個(gè)開(kāi)放的平臺,這也奠定了Web從90年代初誕生直到明日將近30年來(lái)蓬勃的發(fā)展。然而,正所謂成也蕭何敗也蕭何,開(kāi)放的特型、搜索引擎以及簡(jiǎn)單易學(xué)的HTML、CSS技術(shù)促使Web成為了互聯(lián)網(wǎng)領(lǐng)域里最為流行和成熟的信息傳播媒介;但現在作為商業(yè)化軟件,Web這個(gè)平臺上的內容信息的版權卻毫無(wú)保證,因為相比軟件客戶(hù)端而言,你的網(wǎng)頁(yè)中的內容可以被太低成本、很低的技術(shù)門(mén)檻實(shí)現出的一些抓取程序獲取到,這也就是這一系列文章將要闡述的話(huà)題——網(wǎng)絡(luò )爬蟲(chóng)。
  
  有很多人覺(jué)得Web應該一直秉持開(kāi)放的精神,呈現在頁(yè)面中的信息應該毫無(wú)保留地分享給整個(gè)互聯(lián)網(wǎng)。然而我覺(jué)得,在IT行業(yè)發(fā)展至明天,Web早已不再是當初那種和PDF一爭高下的所謂“超文本”信息載體了,它早已是以一種輕量級客戶(hù)端軟件的意識形態(tài)的存在了。而商業(yè)軟件發(fā)展到明天,Web也不得不面對知識產(chǎn)權保護的問(wèn)題,試想假如原創(chuàng )的高質(zhì)量?jì)热莸貌坏奖Wo,抄襲和盜版橫行網(wǎng)路世界,這顯然對Web生態(tài)的良性發(fā)展是不利的,也很難鼓勵更多的優(yōu)質(zhì)原創(chuàng )內容的生產(chǎn)。
  未授權的爬蟲(chóng)抓取程序是害處Web原創(chuàng )內容生態(tài)的一大誘因,因此要保護網(wǎng)站的內容,首先就要考慮怎樣反爬蟲(chóng)。
  從爬蟲(chóng)的攻守角度來(lái)講
  最簡(jiǎn)單的爬蟲(chóng),是幾乎所有服務(wù)端、客戶(hù)端編程語(yǔ)言都支持的http懇求,只要向目標頁(yè)面的url發(fā)起一個(gè)http get懇求,即可獲得到瀏覽器加載這個(gè)頁(yè)面時(shí)的完整html文檔,這被我們稱(chēng)之為“同步頁(yè)”。
  作為逼搶的一方,服務(wù)端可以按照http請求頭中的User-Agent來(lái)檢測客戶(hù)端是否是一個(gè)合法的瀏覽器程序,亦或是一個(gè)腳本編撰的抓取程序,從而決定是否將真實(shí)的頁(yè)面信息內容下發(fā)給你。
  這其實(shí)是最小兒科的防御手段,爬蟲(chóng)作為逼搶的一方,完全可以偽造User-Agent數組,甚至,只要你樂(lè )意,http的get方式里, request header的 Referrer 、 Cookie 等等所有數組爬蟲(chóng)都可以輕而易舉的偽造。
  此時(shí)服務(wù)端可以借助瀏覽器http頭指紋,根據你申明的自己的瀏覽器廠(chǎng)商和版本(來(lái)自 User-Agent ),來(lái)分辨你的http header中的各個(gè)數組是否符合該瀏覽器的特點(diǎn),如不符合則作為爬蟲(chóng)程序對待。這個(gè)技術(shù)有一個(gè)典型的應用,就是PhantomJS1.x版本中,由于其底層調用了Qt框架的網(wǎng)路庫,因此http頭里有顯著(zhù)的Qt框架網(wǎng)路懇求的特點(diǎn),可以被服務(wù)端直接辨識并攔截。
  除此之外,還有一種愈發(fā)變態(tài)的服務(wù)端爬蟲(chóng)檢查機制,就是對所有訪(fǎng)問(wèn)頁(yè)面的http請求,在 http response 中種下一個(gè) cookie token ,然后在這個(gè)頁(yè)面內異步執行的一些ajax插口里去校準來(lái)訪(fǎng)懇求是否富含cookie token,將token回傳回去則表明這是一個(gè)合法的瀏覽器來(lái)訪(fǎng),否則說(shuō)明剛才被下發(fā)了那種token的用戶(hù)訪(fǎng)問(wèn)了頁(yè)面html卻沒(méi)有訪(fǎng)問(wèn)html內執行js后調用的ajax懇求,很有可能是一個(gè)爬蟲(chóng)程序。
  如果你不攜帶token直接訪(fǎng)問(wèn)一個(gè)插口,這也就意味著(zhù)你沒(méi)懇求過(guò)html頁(yè)面直接向本應由頁(yè)面內ajax訪(fǎng)問(wèn)的插口發(fā)起了網(wǎng)路懇求,這也似乎證明了你是一個(gè)可疑的爬蟲(chóng)。知名電商網(wǎng)站amazon就是采用的這些防御策略。
  以上則是基于服務(wù)端校準爬蟲(chóng)程序,可以玩出的一些套路手段。
  基于客戶(hù)端js運行時(shí)的測量
  現代瀏覽器賦于了強悍的能力,因此我們可以把頁(yè)面的所有核心內容都弄成js異步懇求 ajax 獲取數據后渲染在頁(yè)面中的,這也許提升了爬蟲(chóng)抓取內容的門(mén)檻。依靠這些方法,我們把對抓取與反抓取的對抗戰場(chǎng)從服務(wù)端轉移到了客戶(hù)端瀏覽器中的js運行時(shí),接下來(lái)說(shuō)一說(shuō)結合客戶(hù)端js運行時(shí)的爬蟲(chóng)抓取技術(shù)。
  剛剛提到的各類(lèi)服務(wù)端校準,對于普通的python、java語(yǔ)言編撰的http抓取程序而言,具有一定的技術(shù)門(mén)檻,畢竟一個(gè)web應用對于未授權抓取者而言是黑盒的,很多東西須要一點(diǎn)一點(diǎn)去嘗試,而耗費大量人力物力開(kāi)發(fā)好的一套抓取程序,web站作為逼搶一方只要輕易調整一些策略,攻擊者就須要再度耗費同等的時(shí)間去更改爬蟲(chóng)抓取邏輯。
  此時(shí)就須要使用headless browser了,這是哪些技術(shù)呢?其實(shí)說(shuō)白了就是,讓程序可以操作瀏覽器去訪(fǎng)問(wèn)網(wǎng)頁(yè),這樣編撰爬蟲(chóng)的人可以通過(guò)調用瀏覽器曝露下來(lái)給程序調用的api去實(shí)現復雜的抓取業(yè)務(wù)邏輯。
  其實(shí)近些年來(lái)這早已不算是哪些新鮮的技術(shù)了,從前有基于webkit內核的PhantomJS,基于Firefox瀏覽器內核的SlimerJS,甚至基于IE內核的trifleJS,有興趣可以瞧瞧這兒和這兒 是兩個(gè)headless browser的搜集列表。
  這些headless browser程序實(shí)現的原理雖然是把開(kāi)源的一些瀏覽器內核C++++代碼加以整修和封裝,實(shí)現一個(gè)簡(jiǎn)易的無(wú)GUI界面渲染的browser程序。但這種項目普遍存在的問(wèn)題是,由于她們的代碼基于fork官方webkit等內核的某一個(gè)版本的主干代碼,因此難以跟進(jìn)一些最新的css屬性和js句型,并且存在一些兼容性的問(wèn)題,不如真正的release版GUI瀏覽器。
  這其中最為成熟、使用率最高的應當當屬PhantonJS了,對這些爬蟲(chóng)的辨識我之前曾寫(xiě)過(guò)一篇博客,這里不再贅言。PhantomJS存在眾多問(wèn)題,因為是單進(jìn)程模型,沒(méi)有必要的沙箱保護,瀏覽器內核的安全性較差。
  如今Google Chrome團隊在chrome 59 release版本中開(kāi)放了headless mode api,并開(kāi)源了一個(gè)基于Node.js調用的headless chromium dirver庫,我也為這個(gè)庫貢獻了一個(gè)centos環(huán)境的布署依賴(lài)安裝列表。
  headless chrome堪稱(chēng)是headless browser中獨樹(shù)一幟的大殺器,由于其自身就是一個(gè)chrome瀏覽器,因此支持各類(lèi)新的css渲染特點(diǎn)和js運行時(shí)句型。
  基于這樣的手段,爬蟲(chóng)作為逼搶的一方可以繞開(kāi)幾乎所有服務(wù)端校準邏輯,但是這種爬蟲(chóng)在客戶(hù)端的js運行時(shí)中仍然存在著(zhù)一些紕漏,諸如:
  基于plugin對象的檢測
  
  基于language的檢測
  
  基于webgl的檢測
  
  基于瀏覽器hairline特點(diǎn)的檢測
  
  基于錯誤img src屬性生成的img對象的檢測
  
  基于以上的一些瀏覽器特點(diǎn)的判定,基本可以通殺市面上大多數headless browser程序。在這一點(diǎn)上,實(shí)際上是將網(wǎng)頁(yè)抓取的門(mén)檻提升,要求編撰爬蟲(chóng)程序的開(kāi)發(fā)者不得不更改瀏覽器內核的C++代碼,重新編譯一個(gè)瀏覽器,并且,以上幾點(diǎn)特點(diǎn)是對瀏覽器內核的改動(dòng)雖然并不小。
  更進(jìn)一步,我們還可以基于瀏覽器的UserAgent數組描述的瀏覽器品牌、版本機型信息,對js運行時(shí)、DOM和BOM的各個(gè)原生對象的屬性及技巧進(jìn)行檢驗,觀(guān)察其特點(diǎn)是否符合該版本的瀏覽器所應具備的特點(diǎn)。
  這種方法被稱(chēng)為瀏覽器指紋檢測技術(shù),依托于小型web站對各機型瀏覽器api信息的搜集。而作為編撰爬蟲(chóng)程序的逼搶一方,則可以在headless browser運行時(shí)里預注入一些js邏輯,偽造瀏覽器的特點(diǎn)。
  另外,在研究瀏覽器端借助js api進(jìn)行robots browser detect時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),我們發(fā)覺(jué)了一個(gè)有趣的小技巧,你可以把一個(gè)預注入的js函數,偽裝成一個(gè)native function,來(lái)瞧瞧下邊代碼:
  
  爬蟲(chóng)進(jìn)攻方可能會(huì )預注入一些js方式,把原生的一些api外邊包裝一層proxy function作為hook,然后再用這個(gè)假的js api去覆蓋原生api。如果防御者在對此做檢測判定時(shí)是基于把函數toString以后對[native code]的檢測,那么都會(huì )被繞開(kāi)。所以須要更嚴格的檢測,因為bind(null)偽造的方式,在toString以后是不帶函數名的。
  反爬蟲(chóng)的手炮
  目前的反抓取、機器人檢測手段,最可靠的還是驗證碼技術(shù)。但驗證碼并不意味著(zhù)一定要逼迫用戶(hù)輸入一連串字母數字,也有好多基于用戶(hù)鍵盤(pán)、觸屏(移動(dòng)端)等行為的行為驗證技術(shù),這其中最為成熟的當屬Google reCAPTCHA。
  基于以上眾多對用戶(hù)與爬蟲(chóng)的辨識分辨技術(shù),網(wǎng)站的防御方最終要做的是封禁ip地址或是對這個(gè)ip的來(lái)訪(fǎng)用戶(hù)施以高硬度的驗證碼策略。這樣一來(lái),進(jìn)攻方不得不訂購ip代理池來(lái)抓取網(wǎng)站信息內容,否則單個(gè)ip地址很容易被封造成難以抓取。抓取與反抓取的門(mén)檻被提升到了ip代理池經(jīng)濟費用的層面。
  機器人協(xié)議
  除此之外,在爬蟲(chóng)抓取技術(shù)領(lǐng)域還有一個(gè)“白道”的手段,叫做robots協(xié)議。你可以在一個(gè)網(wǎng)站的根目錄下訪(fǎng)問(wèn)/robots.txt,比如使我們一起來(lái)瞧瞧github的機器人合同,Allow和Disallow申明了對各個(gè)UA爬蟲(chóng)的抓取授權。
  不過(guò),這只是一個(gè)君子合同,雖具有法律效益,但只能夠限制這些商業(yè)搜索引擎的蜘蛛程序,你沒(méi)法對這些“野爬愛(ài)好者”加以限制。
  寫(xiě)在最后
  對網(wǎng)頁(yè)內容的抓取與反制,注定是一個(gè)魔高一尺道高一丈的貓鼠游戲,你永遠不可能以某一種技術(shù)徹底封死爬蟲(chóng)程序的街網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),你能做的只是增強攻擊者的抓取成本,并對于未授權的抓取行為做到較為精確的據悉。 查看全部

  Web是一個(gè)開(kāi)放的平臺,這也奠定了Web從90年代初誕生直到明日將近30年來(lái)蓬勃的發(fā)展。然而,正所謂成也蕭何敗也蕭何,開(kāi)放的特型、搜索引擎以及簡(jiǎn)單易學(xué)的HTML、CSS技術(shù)促使Web成為了互聯(lián)網(wǎng)領(lǐng)域里最為流行和成熟的信息傳播媒介;但現在作為商業(yè)化軟件,Web這個(gè)平臺上的內容信息的版權卻毫無(wú)保證,因為相比軟件客戶(hù)端而言,你的網(wǎng)頁(yè)中的內容可以被太低成本、很低的技術(shù)門(mén)檻實(shí)現出的一些抓取程序獲取到,這也就是這一系列文章將要闡述的話(huà)題——網(wǎng)絡(luò )爬蟲(chóng)。
  
  有很多人覺(jué)得Web應該一直秉持開(kāi)放的精神,呈現在頁(yè)面中的信息應該毫無(wú)保留地分享給整個(gè)互聯(lián)網(wǎng)。然而我覺(jué)得,在IT行業(yè)發(fā)展至明天,Web早已不再是當初那種和PDF一爭高下的所謂“超文本”信息載體了,它早已是以一種輕量級客戶(hù)端軟件的意識形態(tài)的存在了。而商業(yè)軟件發(fā)展到明天,Web也不得不面對知識產(chǎn)權保護的問(wèn)題,試想假如原創(chuàng )的高質(zhì)量?jì)热莸貌坏奖Wo,抄襲和盜版橫行網(wǎng)路世界,這顯然對Web生態(tài)的良性發(fā)展是不利的,也很難鼓勵更多的優(yōu)質(zhì)原創(chuàng )內容的生產(chǎn)。
  未授權的爬蟲(chóng)抓取程序是害處Web原創(chuàng )內容生態(tài)的一大誘因,因此要保護網(wǎng)站的內容,首先就要考慮怎樣反爬蟲(chóng)。
  從爬蟲(chóng)的攻守角度來(lái)講
  最簡(jiǎn)單的爬蟲(chóng),是幾乎所有服務(wù)端、客戶(hù)端編程語(yǔ)言都支持的http懇求,只要向目標頁(yè)面的url發(fā)起一個(gè)http get懇求,即可獲得到瀏覽器加載這個(gè)頁(yè)面時(shí)的完整html文檔,這被我們稱(chēng)之為“同步頁(yè)”。
  作為逼搶的一方,服務(wù)端可以按照http請求頭中的User-Agent來(lái)檢測客戶(hù)端是否是一個(gè)合法的瀏覽器程序,亦或是一個(gè)腳本編撰的抓取程序,從而決定是否將真實(shí)的頁(yè)面信息內容下發(fā)給你。
  這其實(shí)是最小兒科的防御手段,爬蟲(chóng)作為逼搶的一方,完全可以偽造User-Agent數組,甚至,只要你樂(lè )意,http的get方式里, request header的 Referrer 、 Cookie 等等所有數組爬蟲(chóng)都可以輕而易舉的偽造。
  此時(shí)服務(wù)端可以借助瀏覽器http頭指紋,根據你申明的自己的瀏覽器廠(chǎng)商和版本(來(lái)自 User-Agent ),來(lái)分辨你的http header中的各個(gè)數組是否符合該瀏覽器的特點(diǎn),如不符合則作為爬蟲(chóng)程序對待。這個(gè)技術(shù)有一個(gè)典型的應用,就是PhantomJS1.x版本中,由于其底層調用了Qt框架的網(wǎng)路庫,因此http頭里有顯著(zhù)的Qt框架網(wǎng)路懇求的特點(diǎn),可以被服務(wù)端直接辨識并攔截。
  除此之外,還有一種愈發(fā)變態(tài)的服務(wù)端爬蟲(chóng)檢查機制,就是對所有訪(fǎng)問(wèn)頁(yè)面的http請求,在 http response 中種下一個(gè) cookie token ,然后在這個(gè)頁(yè)面內異步執行的一些ajax插口里去校準來(lái)訪(fǎng)懇求是否富含cookie token,將token回傳回去則表明這是一個(gè)合法的瀏覽器來(lái)訪(fǎng),否則說(shuō)明剛才被下發(fā)了那種token的用戶(hù)訪(fǎng)問(wèn)了頁(yè)面html卻沒(méi)有訪(fǎng)問(wèn)html內執行js后調用的ajax懇求,很有可能是一個(gè)爬蟲(chóng)程序。
  如果你不攜帶token直接訪(fǎng)問(wèn)一個(gè)插口,這也就意味著(zhù)你沒(méi)懇求過(guò)html頁(yè)面直接向本應由頁(yè)面內ajax訪(fǎng)問(wèn)的插口發(fā)起了網(wǎng)路懇求,這也似乎證明了你是一個(gè)可疑的爬蟲(chóng)。知名電商網(wǎng)站amazon就是采用的這些防御策略。
  以上則是基于服務(wù)端校準爬蟲(chóng)程序,可以玩出的一些套路手段。
  基于客戶(hù)端js運行時(shí)的測量
  現代瀏覽器賦于了強悍的能力,因此我們可以把頁(yè)面的所有核心內容都弄成js異步懇求 ajax 獲取數據后渲染在頁(yè)面中的,這也許提升了爬蟲(chóng)抓取內容的門(mén)檻。依靠這些方法,我們把對抓取與反抓取的對抗戰場(chǎng)從服務(wù)端轉移到了客戶(hù)端瀏覽器中的js運行時(shí),接下來(lái)說(shuō)一說(shuō)結合客戶(hù)端js運行時(shí)的爬蟲(chóng)抓取技術(shù)。
  剛剛提到的各類(lèi)服務(wù)端校準,對于普通的python、java語(yǔ)言編撰的http抓取程序而言,具有一定的技術(shù)門(mén)檻,畢竟一個(gè)web應用對于未授權抓取者而言是黑盒的,很多東西須要一點(diǎn)一點(diǎn)去嘗試,而耗費大量人力物力開(kāi)發(fā)好的一套抓取程序,web站作為逼搶一方只要輕易調整一些策略,攻擊者就須要再度耗費同等的時(shí)間去更改爬蟲(chóng)抓取邏輯。
  此時(shí)就須要使用headless browser了,這是哪些技術(shù)呢?其實(shí)說(shuō)白了就是,讓程序可以操作瀏覽器去訪(fǎng)問(wèn)網(wǎng)頁(yè),這樣編撰爬蟲(chóng)的人可以通過(guò)調用瀏覽器曝露下來(lái)給程序調用的api去實(shí)現復雜的抓取業(yè)務(wù)邏輯。
  其實(shí)近些年來(lái)這早已不算是哪些新鮮的技術(shù)了,從前有基于webkit內核的PhantomJS,基于Firefox瀏覽器內核的SlimerJS,甚至基于IE內核的trifleJS,有興趣可以瞧瞧這兒和這兒 是兩個(gè)headless browser的搜集列表。
  這些headless browser程序實(shí)現的原理雖然是把開(kāi)源的一些瀏覽器內核C++++代碼加以整修和封裝,實(shí)現一個(gè)簡(jiǎn)易的無(wú)GUI界面渲染的browser程序。但這種項目普遍存在的問(wèn)題是,由于她們的代碼基于fork官方webkit等內核的某一個(gè)版本的主干代碼,因此難以跟進(jìn)一些最新的css屬性和js句型,并且存在一些兼容性的問(wèn)題,不如真正的release版GUI瀏覽器。
  這其中最為成熟、使用率最高的應當當屬PhantonJS了,對這些爬蟲(chóng)的辨識我之前曾寫(xiě)過(guò)一篇博客,這里不再贅言。PhantomJS存在眾多問(wèn)題,因為是單進(jìn)程模型,沒(méi)有必要的沙箱保護,瀏覽器內核的安全性較差。
  如今Google Chrome團隊在chrome 59 release版本中開(kāi)放了headless mode api,并開(kāi)源了一個(gè)基于Node.js調用的headless chromium dirver庫,我也為這個(gè)庫貢獻了一個(gè)centos環(huán)境的布署依賴(lài)安裝列表。
  headless chrome堪稱(chēng)是headless browser中獨樹(shù)一幟的大殺器,由于其自身就是一個(gè)chrome瀏覽器,因此支持各類(lèi)新的css渲染特點(diǎn)和js運行時(shí)句型。
  基于這樣的手段,爬蟲(chóng)作為逼搶的一方可以繞開(kāi)幾乎所有服務(wù)端校準邏輯,但是這種爬蟲(chóng)在客戶(hù)端的js運行時(shí)中仍然存在著(zhù)一些紕漏,諸如:
  基于plugin對象的檢測
  
  基于language的檢測
  
  基于webgl的檢測
  
  基于瀏覽器hairline特點(diǎn)的檢測
  
  基于錯誤img src屬性生成的img對象的檢測
  
  基于以上的一些瀏覽器特點(diǎn)的判定,基本可以通殺市面上大多數headless browser程序。在這一點(diǎn)上,實(shí)際上是將網(wǎng)頁(yè)抓取的門(mén)檻提升,要求編撰爬蟲(chóng)程序的開(kāi)發(fā)者不得不更改瀏覽器內核的C++代碼,重新編譯一個(gè)瀏覽器,并且,以上幾點(diǎn)特點(diǎn)是對瀏覽器內核的改動(dòng)雖然并不小。
  更進(jìn)一步,我們還可以基于瀏覽器的UserAgent數組描述的瀏覽器品牌、版本機型信息,對js運行時(shí)、DOM和BOM的各個(gè)原生對象的屬性及技巧進(jìn)行檢驗,觀(guān)察其特點(diǎn)是否符合該版本的瀏覽器所應具備的特點(diǎn)。
  這種方法被稱(chēng)為瀏覽器指紋檢測技術(shù),依托于小型web站對各機型瀏覽器api信息的搜集。而作為編撰爬蟲(chóng)程序的逼搶一方,則可以在headless browser運行時(shí)里預注入一些js邏輯,偽造瀏覽器的特點(diǎn)。
  另外,在研究瀏覽器端借助js api進(jìn)行robots browser detect時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),我們發(fā)覺(jué)了一個(gè)有趣的小技巧,你可以把一個(gè)預注入的js函數,偽裝成一個(gè)native function,來(lái)瞧瞧下邊代碼:
  
  爬蟲(chóng)進(jìn)攻方可能會(huì )預注入一些js方式,把原生的一些api外邊包裝一層proxy function作為hook,然后再用這個(gè)假的js api去覆蓋原生api。如果防御者在對此做檢測判定時(shí)是基于把函數toString以后對[native code]的檢測,那么都會(huì )被繞開(kāi)。所以須要更嚴格的檢測,因為bind(null)偽造的方式,在toString以后是不帶函數名的。
  反爬蟲(chóng)的手炮
  目前的反抓取、機器人檢測手段,最可靠的還是驗證碼技術(shù)。但驗證碼并不意味著(zhù)一定要逼迫用戶(hù)輸入一連串字母數字,也有好多基于用戶(hù)鍵盤(pán)、觸屏(移動(dòng)端)等行為的行為驗證技術(shù),這其中最為成熟的當屬Google reCAPTCHA。
  基于以上眾多對用戶(hù)與爬蟲(chóng)的辨識分辨技術(shù),網(wǎng)站的防御方最終要做的是封禁ip地址或是對這個(gè)ip的來(lái)訪(fǎng)用戶(hù)施以高硬度的驗證碼策略。這樣一來(lái),進(jìn)攻方不得不訂購ip代理池來(lái)抓取網(wǎng)站信息內容,否則單個(gè)ip地址很容易被封造成難以抓取。抓取與反抓取的門(mén)檻被提升到了ip代理池經(jīng)濟費用的層面。
  機器人協(xié)議
  除此之外,在爬蟲(chóng)抓取技術(shù)領(lǐng)域還有一個(gè)“白道”的手段,叫做robots協(xié)議。你可以在一個(gè)網(wǎng)站的根目錄下訪(fǎng)問(wèn)/robots.txt,比如使我們一起來(lái)瞧瞧github的機器人合同,Allow和Disallow申明了對各個(gè)UA爬蟲(chóng)的抓取授權。
  不過(guò),這只是一個(gè)君子合同,雖具有法律效益,但只能夠限制這些商業(yè)搜索引擎的蜘蛛程序,你沒(méi)法對這些“野爬愛(ài)好者”加以限制。
  寫(xiě)在最后
  對網(wǎng)頁(yè)內容的抓取與反制,注定是一個(gè)魔高一尺道高一丈的貓鼠游戲,你永遠不可能以某一種技術(shù)徹底封死爬蟲(chóng)程序的街網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),你能做的只是增強攻擊者的抓取成本,并對于未授權的抓取行為做到較為精確的據悉。

淺談網(wǎng)絡(luò )爬蟲(chóng)及其發(fā)展趨勢

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 340 次瀏覽 ? 2020-05-11 08:02 ? 來(lái)自相關(guān)話(huà)題

  
  隨著(zhù)的發(fā)展壯大,人們獲取信息的途徑漸漸被網(wǎng)路所代替?;ヂ?lián)網(wǎng)發(fā)展早期,人們主要通過(guò)瀏覽門(mén)戶(hù)網(wǎng)站的方法獲取所需信息,但是隨著(zhù)Web的飛速發(fā)展, 用這些方法找尋自己所需信息顯得越來(lái)越困難。目前,人們大多通過(guò)搜索引擎獲取有用信息網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),因此,搜索引擎技術(shù)的發(fā)展將直接影響人們獲取所需信息的速率和質(zhì)量。
  1994 年世界上第一個(gè)網(wǎng)絡(luò )檢索工具Web Crawler 問(wèn)世, 目前較流行的搜索引擎有、、Yahoo、Info seek、Inktomi、Teoma、Live Search 等。出于商業(yè)機密的考慮,現在各個(gè)搜索引擎使用的Crawler 系統的技術(shù)黑幕通常都不公開(kāi),現有的文獻資料也僅限于概要性介紹。隨著(zhù)網(wǎng)路信息資源呈指數級下降及網(wǎng)路信息資源動(dòng)態(tài)變化,傳統的搜索引擎提供的信息檢索服務(wù)已難以滿(mǎn)足人們愈加下降的對個(gè)性化服務(wù)的需求,正面臨著(zhù)巨大的挑戰。以何種策略訪(fǎng)問(wèn)網(wǎng)路,提高搜索效率,已成為近些年來(lái)專(zhuān)業(yè)搜索引擎研究的主要問(wèn)題之一。
  1、搜索引擎分類(lèi)
  搜索引擎按其形式主要分為全文搜索引擎、目錄索引類(lèi)搜索引擎和元搜索引擎三種。
  1.1 全文搜索引擎
  全文搜索引擎是名副其實(shí)的搜索引擎,通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站信息(以網(wǎng)頁(yè)文字為主)而構建的中,檢索與用戶(hù)查詢(xún)條件匹配的相關(guān)記錄,然后按一定的排列次序將結果返回給用戶(hù)。
  全文搜索引擎又可細分為兩種:a)擁有自己的檢索程序(Indexer),俗稱(chēng)“蜘蛛”(Spider)程序或“機器人”(Robot)程序,自建網(wǎng)頁(yè)數據庫,搜索結果直接從自身的數據庫中調用。b)租用其他引擎的數據庫,按自定的格式排列搜索結果。
  1.2 目錄索引型搜索引擎
  與全文搜索引擎不同的是,目錄索引型搜索引擎的索引數據庫是由編輯人員人工構建上去的,這些編輯人員在訪(fǎng)問(wèn)過(guò)某個(gè)Web 站點(diǎn)后,根據一套自定的衡量標準及主觀(guān)印象作出對該站點(diǎn)的描述,并按照站點(diǎn)的內容和性質(zhì)將其歸為一個(gè)預先分好的類(lèi)別,分門(mén)別類(lèi)地儲存在相應的目錄中。用戶(hù)在查詢(xún)時(shí),可以通過(guò)關(guān)鍵詞搜索,也可以按分類(lèi)目錄逐層檢索。
  因為目錄索引型的索引數據庫是借助人工來(lái)評價(jià)一個(gè)網(wǎng)站的內容,所以用戶(hù)從目錄搜索到的結果常常比全文檢索到的結果更具有參考價(jià)值。實(shí)際上,目前好多的搜索網(wǎng)站都同時(shí)提供目錄和全文搜索的搜索服務(wù),盡可能為用戶(hù)提供全面的查詢(xún)結果。
  1.3 元搜索引擎
  元搜索引擎是將用戶(hù)遞交的檢索懇求送到多個(gè)獨立的搜索引擎搜索,將檢索結果集中統一處理,以統一的格式提供給用戶(hù),因此有搜索引擎之上的搜索引擎之稱(chēng)。它將主要精力放到提升搜索速率、智能化處理搜索結果、個(gè)性搜索功能的設置和用戶(hù)檢索界面的友好性上,其查全率和查準率相對較高。它的特征是本身沒(méi)有儲存網(wǎng)頁(yè)信息的數據庫,當用戶(hù)查詢(xún)一個(gè)關(guān)鍵詞時(shí),它將用戶(hù)懇求轉換成其他搜索引擎能接受的命令格式,并行地訪(fǎng)問(wèn)數個(gè)搜索引擎來(lái)查詢(xún)這個(gè)關(guān)鍵詞,將這種搜索引擎返回的結果經(jīng)過(guò)處理后再返回給用戶(hù)。在搜索結果排列方面,有的直接按來(lái)源引擎排列搜索結果,有的則按自定的規則將結果重新排列組合。
  2、網(wǎng)絡(luò )爬蟲(chóng)技術(shù)
  2.1 網(wǎng)絡(luò )爬蟲(chóng)的工作原理
  網(wǎng)絡(luò )爬蟲(chóng)源自Spider(或Crawler、robots、wanderer)等的譯音。網(wǎng)絡(luò )爬蟲(chóng)的定義有廣義和狹義之分,狹義的定義為:利用標準的http 協(xié)議,根據超級鏈接和Web 文檔檢索的方式遍歷萬(wàn)維網(wǎng)信息空間的軟件程序。廣義的定義為:所有能借助http協(xié)議檢索Web 文檔的軟件都稱(chēng)之為網(wǎng)路爬蟲(chóng)。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)功能太強悍的手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)下載網(wǎng)頁(yè),是搜索引擎的重要組成部份。它通過(guò)懇求站點(diǎn)上的HTML 文檔訪(fǎng)問(wèn)某一站點(diǎn)。它遍歷Web 空間,不斷從一個(gè)站點(diǎn)到另一個(gè)站點(diǎn),自動(dòng)構建索引,并加入到網(wǎng)頁(yè)數據庫中。網(wǎng)絡(luò )爬蟲(chóng)步入某個(gè)超級文本時(shí),利用HTML 語(yǔ)言的標記結構來(lái)搜索信息及獲取指向其他超級文本的URL 地址,可以完全不依賴(lài)用戶(hù)干預實(shí)現網(wǎng)路上的手動(dòng)“爬行”和搜索。網(wǎng)絡(luò )爬蟲(chóng)在搜索時(shí)常常采用一定的搜索策略。
  2.2 網(wǎng)絡(luò )爬蟲(chóng)的搜索策略
  1)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式,它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超級鏈接的HTML文件)。在一個(gè)HTML文件中,當一個(gè)超級鏈接被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,即在搜索其余的超級鏈接結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超級鏈接走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超級鏈接。當不再有其他超級鏈接可選擇時(shí),說(shuō)明搜索早已結束。其優(yōu)點(diǎn)是能遍歷一個(gè)Web站點(diǎn)或深層嵌套的文檔集合。缺點(diǎn)是因為Web結構相當深,有可能導致一旦進(jìn)去再也出不來(lái)的情況發(fā)生。
  2)寬度優(yōu)先搜索策略
  在長(cháng)度優(yōu)先搜索中,先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML 文件中有3個(gè)超級鏈接,選擇其中之一,處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超級鏈接,而是返回,選擇第二個(gè)超級鏈接,處理相應的HTML文件,再返回,選擇第三個(gè)超級鏈接,并處理相應的HTML文件。一旦一層上的所有超級鏈接都被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超級鏈接。這就保證了對淺層的首先處理。當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),不會(huì )造成陷進(jìn)WWW的深層文檔中出不來(lái)的情況發(fā)生。寬度優(yōu)先搜索策略還有一個(gè)優(yōu)點(diǎn),它能在兩個(gè)HTML文件之間找到最短路徑。寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費較長(cháng)時(shí)間能夠抵達深層的HTML文件。
  綜合考慮以上幾種策略和國外信息導航系統搜索信息的特性,國內通常采用以長(cháng)度優(yōu)先搜索策略為主,線(xiàn)性搜索策略為輔的搜索策略。對于個(gè)別不被引用的或極少被引用的HTML文件,寬度優(yōu)先搜索策略可能會(huì )遺漏那些孤立的信息源,可以用線(xiàn)性搜索策略作為它的補充。
  3)聚焦搜索策略
  聚焦爬蟲(chóng)的爬行策略只跳出某個(gè)特定主題的頁(yè)面,根據“最好優(yōu)先原則”進(jìn)行訪(fǎng)問(wèn),快速、有效地獲得更多的與主題相關(guān)的頁(yè)面,主要通過(guò)內容與Web的鏈接結構指導進(jìn)一步的頁(yè)面抓取。聚焦爬蟲(chóng)會(huì )給它所下載的頁(yè)面一個(gè)評價(jià)分,根據得分排序插入到一個(gè)隊列中。最好的下一個(gè)搜索對彈出隊列中的第一個(gè)頁(yè)面進(jìn)行剖析后執行,這種策略保證爬蟲(chóng)能優(yōu)先跟蹤這些最有可能鏈接到目標頁(yè)面的頁(yè)面。決定網(wǎng)路爬蟲(chóng)搜索策略的關(guān)鍵是怎樣評價(jià)鏈接價(jià)值,即鏈接價(jià)值的估算方式,不同的價(jià)值評價(jià)方式估算出的鏈接的價(jià)值不同,表現出的鏈接的“重要程度”也不同,從而決定了不同的搜索策略。由于鏈接包含于頁(yè)面之中,而一般具有較高價(jià)值的頁(yè)面包含的鏈接也具有較高價(jià)值,因而對鏈接價(jià)值的評價(jià)有時(shí)也轉換為對頁(yè)面價(jià)值的評價(jià)。這種策略一般運用在專(zhuān)業(yè)搜索引擎中,因為這些搜索引擎只關(guān)心某一特定主題的頁(yè)面。
  【福利】填問(wèn)卷送精選測試禮包+接口測試課程!為測試行業(yè)做點(diǎn)事! 查看全部

  
  隨著(zhù)的發(fā)展壯大,人們獲取信息的途徑漸漸被網(wǎng)路所代替?;ヂ?lián)網(wǎng)發(fā)展早期,人們主要通過(guò)瀏覽門(mén)戶(hù)網(wǎng)站的方法獲取所需信息,但是隨著(zhù)Web的飛速發(fā)展, 用這些方法找尋自己所需信息顯得越來(lái)越困難。目前,人們大多通過(guò)搜索引擎獲取有用信息網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),因此,搜索引擎技術(shù)的發(fā)展將直接影響人們獲取所需信息的速率和質(zhì)量。
  1994 年世界上第一個(gè)網(wǎng)絡(luò )檢索工具Web Crawler 問(wèn)世, 目前較流行的搜索引擎有、、Yahoo、Info seek、Inktomi、Teoma、Live Search 等。出于商業(yè)機密的考慮,現在各個(gè)搜索引擎使用的Crawler 系統的技術(shù)黑幕通常都不公開(kāi),現有的文獻資料也僅限于概要性介紹。隨著(zhù)網(wǎng)路信息資源呈指數級下降及網(wǎng)路信息資源動(dòng)態(tài)變化,傳統的搜索引擎提供的信息檢索服務(wù)已難以滿(mǎn)足人們愈加下降的對個(gè)性化服務(wù)的需求,正面臨著(zhù)巨大的挑戰。以何種策略訪(fǎng)問(wèn)網(wǎng)路,提高搜索效率,已成為近些年來(lái)專(zhuān)業(yè)搜索引擎研究的主要問(wèn)題之一。
  1、搜索引擎分類(lèi)
  搜索引擎按其形式主要分為全文搜索引擎、目錄索引類(lèi)搜索引擎和元搜索引擎三種。
  1.1 全文搜索引擎
  全文搜索引擎是名副其實(shí)的搜索引擎,通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站信息(以網(wǎng)頁(yè)文字為主)而構建的中,檢索與用戶(hù)查詢(xún)條件匹配的相關(guān)記錄,然后按一定的排列次序將結果返回給用戶(hù)。
  全文搜索引擎又可細分為兩種:a)擁有自己的檢索程序(Indexer),俗稱(chēng)“蜘蛛”(Spider)程序或“機器人”(Robot)程序,自建網(wǎng)頁(yè)數據庫,搜索結果直接從自身的數據庫中調用。b)租用其他引擎的數據庫,按自定的格式排列搜索結果。
  1.2 目錄索引型搜索引擎
  與全文搜索引擎不同的是,目錄索引型搜索引擎的索引數據庫是由編輯人員人工構建上去的,這些編輯人員在訪(fǎng)問(wèn)過(guò)某個(gè)Web 站點(diǎn)后,根據一套自定的衡量標準及主觀(guān)印象作出對該站點(diǎn)的描述,并按照站點(diǎn)的內容和性質(zhì)將其歸為一個(gè)預先分好的類(lèi)別,分門(mén)別類(lèi)地儲存在相應的目錄中。用戶(hù)在查詢(xún)時(shí),可以通過(guò)關(guān)鍵詞搜索,也可以按分類(lèi)目錄逐層檢索。
  因為目錄索引型的索引數據庫是借助人工來(lái)評價(jià)一個(gè)網(wǎng)站的內容,所以用戶(hù)從目錄搜索到的結果常常比全文檢索到的結果更具有參考價(jià)值。實(shí)際上,目前好多的搜索網(wǎng)站都同時(shí)提供目錄和全文搜索的搜索服務(wù),盡可能為用戶(hù)提供全面的查詢(xún)結果。
  1.3 元搜索引擎
  元搜索引擎是將用戶(hù)遞交的檢索懇求送到多個(gè)獨立的搜索引擎搜索,將檢索結果集中統一處理,以統一的格式提供給用戶(hù),因此有搜索引擎之上的搜索引擎之稱(chēng)。它將主要精力放到提升搜索速率、智能化處理搜索結果、個(gè)性搜索功能的設置和用戶(hù)檢索界面的友好性上,其查全率和查準率相對較高。它的特征是本身沒(méi)有儲存網(wǎng)頁(yè)信息的數據庫,當用戶(hù)查詢(xún)一個(gè)關(guān)鍵詞時(shí),它將用戶(hù)懇求轉換成其他搜索引擎能接受的命令格式,并行地訪(fǎng)問(wèn)數個(gè)搜索引擎來(lái)查詢(xún)這個(gè)關(guān)鍵詞,將這種搜索引擎返回的結果經(jīng)過(guò)處理后再返回給用戶(hù)。在搜索結果排列方面,有的直接按來(lái)源引擎排列搜索結果,有的則按自定的規則將結果重新排列組合。
  2、網(wǎng)絡(luò )爬蟲(chóng)技術(shù)
  2.1 網(wǎng)絡(luò )爬蟲(chóng)的工作原理
  網(wǎng)絡(luò )爬蟲(chóng)源自Spider(或Crawler、robots、wanderer)等的譯音。網(wǎng)絡(luò )爬蟲(chóng)的定義有廣義和狹義之分,狹義的定義為:利用標準的http 協(xié)議,根據超級鏈接和Web 文檔檢索的方式遍歷萬(wàn)維網(wǎng)信息空間的軟件程序。廣義的定義為:所有能借助http協(xié)議檢索Web 文檔的軟件都稱(chēng)之為網(wǎng)路爬蟲(chóng)。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)功能太強悍的手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)下載網(wǎng)頁(yè),是搜索引擎的重要組成部份。它通過(guò)懇求站點(diǎn)上的HTML 文檔訪(fǎng)問(wèn)某一站點(diǎn)。它遍歷Web 空間,不斷從一個(gè)站點(diǎn)到另一個(gè)站點(diǎn),自動(dòng)構建索引,并加入到網(wǎng)頁(yè)數據庫中。網(wǎng)絡(luò )爬蟲(chóng)步入某個(gè)超級文本時(shí),利用HTML 語(yǔ)言的標記結構來(lái)搜索信息及獲取指向其他超級文本的URL 地址,可以完全不依賴(lài)用戶(hù)干預實(shí)現網(wǎng)路上的手動(dòng)“爬行”和搜索。網(wǎng)絡(luò )爬蟲(chóng)在搜索時(shí)常常采用一定的搜索策略。
  2.2 網(wǎng)絡(luò )爬蟲(chóng)的搜索策略
  1)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式,它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超級鏈接的HTML文件)。在一個(gè)HTML文件中,當一個(gè)超級鏈接被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,即在搜索其余的超級鏈接結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超級鏈接走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超級鏈接。當不再有其他超級鏈接可選擇時(shí),說(shuō)明搜索早已結束。其優(yōu)點(diǎn)是能遍歷一個(gè)Web站點(diǎn)或深層嵌套的文檔集合。缺點(diǎn)是因為Web結構相當深,有可能導致一旦進(jìn)去再也出不來(lái)的情況發(fā)生。
  2)寬度優(yōu)先搜索策略
  在長(cháng)度優(yōu)先搜索中,先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML 文件中有3個(gè)超級鏈接,選擇其中之一,處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超級鏈接,而是返回,選擇第二個(gè)超級鏈接,處理相應的HTML文件,再返回,選擇第三個(gè)超級鏈接,并處理相應的HTML文件。一旦一層上的所有超級鏈接都被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超級鏈接。這就保證了對淺層的首先處理。當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),不會(huì )造成陷進(jìn)WWW的深層文檔中出不來(lái)的情況發(fā)生。寬度優(yōu)先搜索策略還有一個(gè)優(yōu)點(diǎn),它能在兩個(gè)HTML文件之間找到最短路徑。寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費較長(cháng)時(shí)間能夠抵達深層的HTML文件。
  綜合考慮以上幾種策略和國外信息導航系統搜索信息的特性,國內通常采用以長(cháng)度優(yōu)先搜索策略為主,線(xiàn)性搜索策略為輔的搜索策略。對于個(gè)別不被引用的或極少被引用的HTML文件,寬度優(yōu)先搜索策略可能會(huì )遺漏那些孤立的信息源,可以用線(xiàn)性搜索策略作為它的補充。
  3)聚焦搜索策略
  聚焦爬蟲(chóng)的爬行策略只跳出某個(gè)特定主題的頁(yè)面,根據“最好優(yōu)先原則”進(jìn)行訪(fǎng)問(wèn),快速、有效地獲得更多的與主題相關(guān)的頁(yè)面,主要通過(guò)內容與Web的鏈接結構指導進(jìn)一步的頁(yè)面抓取。聚焦爬蟲(chóng)會(huì )給它所下載的頁(yè)面一個(gè)評價(jià)分,根據得分排序插入到一個(gè)隊列中。最好的下一個(gè)搜索對彈出隊列中的第一個(gè)頁(yè)面進(jìn)行剖析后執行,這種策略保證爬蟲(chóng)能優(yōu)先跟蹤這些最有可能鏈接到目標頁(yè)面的頁(yè)面。決定網(wǎng)路爬蟲(chóng)搜索策略的關(guān)鍵是怎樣評價(jià)鏈接價(jià)值,即鏈接價(jià)值的估算方式,不同的價(jià)值評價(jià)方式估算出的鏈接的價(jià)值不同,表現出的鏈接的“重要程度”也不同,從而決定了不同的搜索策略。由于鏈接包含于頁(yè)面之中,而一般具有較高價(jià)值的頁(yè)面包含的鏈接也具有較高價(jià)值,因而對鏈接價(jià)值的評價(jià)有時(shí)也轉換為對頁(yè)面價(jià)值的評價(jià)。這種策略一般運用在專(zhuān)業(yè)搜索引擎中,因為這些搜索引擎只關(guān)心某一特定主題的頁(yè)面。
  【福利】填問(wèn)卷送精選測試禮包+接口測試課程!為測試行業(yè)做點(diǎn)事!

20款最常使用的網(wǎng)路爬蟲(chóng)工具推薦(2018)教程文件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 387 次瀏覽 ? 2020-05-09 08:00 ? 來(lái)自相關(guān)話(huà)題

  精品文檔20 款最常使用的網(wǎng)路爬蟲(chóng)工具推薦 (2018)網(wǎng)絡(luò )爬蟲(chóng)在現今的許多領(lǐng)域得到廣泛應用。它的作用是從任何網(wǎng)站獲取特定的或 更新的數據并儲存出來(lái)。網(wǎng)絡(luò )爬蟲(chóng)工具越來(lái)越為人所熟知,因為網(wǎng)路爬蟲(chóng)簡(jiǎn)化并 自動(dòng)化了整個(gè)爬取過(guò)程,使每個(gè)人都可以輕松訪(fǎng)問(wèn)網(wǎng)站數據資源。使用網(wǎng)路爬蟲(chóng) 工具可以使人們免予重復打字或復制粘貼,我們可以太輕松的去采集網(wǎng)頁(yè)上的數 據。此外,這些網(wǎng)路爬蟲(chóng)工具可以使用戶(hù)就能以有條不紊和快速的抓取網(wǎng)頁(yè),而 無(wú)需編程并將數據轉換為符合其需求的各類(lèi)格式。在這篇文章中網(wǎng)絡(luò )爬蟲(chóng)軟件下載,我將介紹目前比較流行的 20 款網(wǎng)路爬蟲(chóng)工具供你參考。希望你 能找到最適宜你需求的工具。1. 八爪魚(yú)八爪魚(yú)是一款免費且功能強悍的網(wǎng)站爬蟲(chóng),用于從網(wǎng)站上提取你須要的幾乎所有 類(lèi)型的數據。你可以使用八爪魚(yú)來(lái)采集市面上幾乎所有的網(wǎng)站。八爪魚(yú)提供兩種精品文檔精品文檔采集模式 - 簡(jiǎn)易模式和自定義采集模式,非程序員可以快速習慣使用八爪魚(yú)。 下載免費軟件后,其可視化界面容許你從網(wǎng)站上獲取所有文本,因此你可以下載 幾乎所有網(wǎng)站內容并將其保存為結構化格式,如 EXCEL,TXT,HTML 或你的數 據庫。 你可以使用其外置的正則表達式工具從復雜的網(wǎng)站布局中提取許多棘手網(wǎng)站的 數據,并使用 XPath 配置工具精確定位 Web 元素。
  另外八爪魚(yú)提供手動(dòng)辨識驗 證碼以及代理 IP 切換功能,可以有效的防止網(wǎng)站防采集。 總之,八爪魚(yú)可以滿(mǎn)足用戶(hù)最基本或中級的采集需求,而無(wú)需任何編程技能。2. HTTrack作為免費的網(wǎng)站爬蟲(chóng)軟件,HTTrack 提供的功能十分適宜從互聯(lián)網(wǎng)下載整個(gè)網(wǎng)站 到你的 PC。它提供了適用于 Windows,Linux,Sun Solaris 和其他 Unix 系統 的版本。它可以將一個(gè)站點(diǎn)或多個(gè)站點(diǎn)鏡像在一起(使用共享鏈接)。你可以在 “設置選項”下下載網(wǎng)頁(yè)時(shí)決定要同時(shí)打開(kāi)的連接數。你可以從整個(gè)目錄中獲取 照片,文件,HTML 代碼,更新當前鏡像的網(wǎng)站并恢復中斷的下載。精品文檔精品文檔據悉,HTTTrack 還提供代理支持,以通過(guò)可選身分驗證最大限度地提升速率。 HTTrack 用作命令行程序,或通過(guò) shell 用于私有(捕獲)或專(zhuān)業(yè)(在線(xiàn) Web 鏡像)使用。 有了這樣的說(shuō)法,HTTrack 應該是首選,并且具有中級編程技能 的人更多地使用它。3、 ScraperScraper 是 Chrome 擴展程序,具有有限的數據提取功能,但它有助于進(jìn)行在 線(xiàn)研究并將數據導入到 Google sheets。
  此工具適用于初學(xué)者以及可以使用 OAuth 輕松將數據復制到剪貼板或儲存到電子表格的專(zhuān)家。Scraper 是一個(gè)免 費的網(wǎng)路爬蟲(chóng)工具,可以在你的瀏覽器中正常工作,并手動(dòng)生成較小的 XPath 來(lái)定義要抓取的 URL。4、OutWit Hub精品文檔精品文檔Outwit Hub 是一個(gè) Firefox 添加件,它有兩個(gè)目的:搜集信息和管理信息。它 可以分別用在網(wǎng)站上不同的部份提供不同的窗口條。還提供用戶(hù)一個(gè)快速步入信 息的方式,虛擬移除網(wǎng)站上別的部份。 OutWit Hub 提供單一界面,可依照須要抓取微小或大量數據。OutWit Hub 允許你從瀏覽器本身抓取任何網(wǎng)頁(yè),甚至可以創(chuàng )建手動(dòng)代理來(lái)提取數據并按照設 置對其進(jìn)行低格。 OutWit Hub 大多功能都是免費的,能夠深入剖析網(wǎng)站,自動(dòng)搜集整理組織互聯(lián) 網(wǎng)中的各項數據,并將網(wǎng)站信息分割開(kāi)來(lái),然后提取有效信息,形成可用的集合。 但是要手動(dòng)提取精確數據就須要付費版本了,同時(shí)免費版一次提取的數據量也是 有限制的,如果須要大批量的操作,可以選擇訂購專(zhuān)業(yè)版。 5. ParseHub精品文檔精品文檔Parsehub 是一個(gè)太棒的網(wǎng)路爬蟲(chóng),支持從使用 AJAX 技術(shù),JavaScript,cookie 等的網(wǎng)站收集數據。
  它的機器學(xué)習技術(shù)可以讀取,分析之后將 Web 文檔轉換為 相關(guān)數據。 Parsehub 的桌面應用程序支持 Windows,Mac OS X 和 Linux 等系統,或者 你可以使用瀏覽器中外置的 Web 應用程序。 作為免費軟件,你可以在 Parsehub 中設置不超過(guò)五個(gè) publice 項目。付費版本 允許你創(chuàng )建起碼 20private 項目來(lái)抓取網(wǎng)站。6. ScrapinghubScrapinghub 是一種基于云的數據提取工具,可幫助數千名開(kāi)發(fā)人員獲取有價(jià) 值的數據。它的開(kāi)源視覺(jué)抓取工具,允許用戶(hù)在沒(méi)有任何編程知識的情況下抓取 網(wǎng)站。 Scrapinghub 使用 Crawlera,一家代理 IP 第三方平臺,支持繞開(kāi)防采集對策。 它使用戶(hù)就能從多個(gè) IP 和位置進(jìn)行網(wǎng)頁(yè)抓取,而無(wú)需通過(guò)簡(jiǎn)單的 HTTP API 進(jìn) 行代理管理。 Scrapinghub 將整個(gè)網(wǎng)頁(yè)轉換為有組織的內容。如果其爬蟲(chóng)工具難以滿(mǎn)足你的 要求,其專(zhuān)家團隊可以提供幫助。。精品文檔精品文檔7. Dexi.io作為基于瀏覽器的網(wǎng)路爬蟲(chóng),Dexi.io 允許你從任何網(wǎng)站基于瀏覽器抓取數據, 并提供三種類(lèi)型的爬蟲(chóng)來(lái)創(chuàng )建采集任務(wù)。
  免費軟件為你的網(wǎng)路抓取提供匿名 Web 代理服務(wù)器,你提取的數據將在存檔數據之前在 Dexi.io 的服務(wù)器上托管 兩周,或者你可以直接將提取的數據導入到 JSON 或 CSV 文件。它提供付費服 務(wù),以滿(mǎn)足你獲取實(shí)時(shí)數據的需求。8. Webhose.ioWebhose.io 使用戶(hù)才能將來(lái)自世界各地的在線(xiàn)資源抓取的實(shí)時(shí)數據轉換為各 種標準的格式。通過(guò)此 Web 爬網(wǎng)程序,你可以使用囊括各類(lèi)來(lái)源的多個(gè)過(guò)濾器 來(lái)抓取數據并進(jìn)一步提取多種語(yǔ)言的關(guān)鍵字。 你可以將刪掉的數據保存為 XML,JSON 和 RSS 格式。并且容許用戶(hù)從其存檔 訪(fǎng)問(wèn)歷史數據。此外,webhose.io 支持最多 80 種語(yǔ)言及其爬行數據結果。用 戶(hù)可以輕松索引和搜索 Webhose.io 抓取的結構化數據。精品文檔精品文檔總的來(lái)說(shuō),Webhose.io 可以滿(mǎn)足用戶(hù)的基本爬行要求。9.Import.io用戶(hù)只需從特定網(wǎng)頁(yè)導出數據并將數據導入到 CSV 即可產(chǎn)生自己的數據集。 你可以在幾分鐘內輕松抓取數千個(gè)網(wǎng)頁(yè),而無(wú)需編撰任何代碼,并按照你的要求 構建 1000 多個(gè) API。公共 API 提供了強悍而靈活的功能來(lái)以編程方法控制 Import.io 并獲得對數據的手動(dòng)訪(fǎng)問(wèn),Import.io 通過(guò)將 Web 數據集成到你自己 的應用程序或網(wǎng)站中,只需點(diǎn)擊幾下就可以輕松實(shí)現爬網(wǎng)。
   為了更好地滿(mǎn)足用戶(hù)的爬行需求,它還提供適用于 Windows,Mac OS X 和 Linux 的免費應用程序,以建立數據提取器和抓取工具,下載數據并與在線(xiàn)賬戶(hù) 同步。此外,用戶(hù)還可以每周網(wǎng)絡(luò )爬蟲(chóng)軟件下載,每天或每小時(shí)安排抓取任務(wù)。10.80legs精品文檔精品文檔80legs 是一個(gè)功能強悍的網(wǎng)路抓取工具,可以按照自定義要求進(jìn)行配置。它支 持獲取大量數據以及立刻下載提取數據的選項。80legs 提供高性能的 Web 爬 行,可以快速工作并在幾秒鐘內獲取所需的數據11. Content GraberContent Graber 是一款面向企業(yè)的網(wǎng)路爬行軟件。它容許你創(chuàng )建獨立的 Web 爬網(wǎng)代理。它可以從幾乎任何網(wǎng)站中提取內容,并以你選擇的格式將其保存為結 構化數據,包括 Excel 報告,XML,CSV 和大多數數據庫。它更適宜具有中級編程技能的人,因為它為有須要的人提供了許多強悍的腳本編 輯和調試界面。允許用戶(hù)使用 C?;?VB.NET 調試或編撰腳本來(lái)編程控制爬網(wǎng)過(guò) 程。例如,Content Grabber 可以與 Visual Studio 2013 集成,以便按照用戶(hù) 的特定需求為中級且機智的自定義爬蟲(chóng)提供最強悍的腳本編輯,調試和單元測 試。
  精品文檔精品文檔12. UiPathUiPath 是一款用于免費網(wǎng)路抓取的機器人過(guò)程自動(dòng)化軟件。它可以手動(dòng)從大多 數第三方應用程序中抓取 Web 和桌面數據。如果運行 Windows 系統,則可以 安裝機械手過(guò)程自動(dòng)化軟件。Uipath 能夠跨多個(gè)網(wǎng)頁(yè)提取表格和基于模式的數 據。 Uipath 提供了用于進(jìn)一步爬行的外置工具。處理復雜的 UI 時(shí),此方式十分有效。 Screen Scraping Tool 可以處理單個(gè)文本元素,文本組和文本塊,例如表格格 式的數據提取。 此外,創(chuàng )建智能 Web 代理不需要編程,但你內部的.NET 黑客可以完全控制數 據。精品文檔精品文檔其實(shí),在里面我提及的爬蟲(chóng)可以滿(mǎn)足大多數用戶(hù)的基本爬行需求,這些工具中各 自的功能依然存在好多差別,大家可以按照自己的需求選擇合適的。八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。精品文檔精品文檔2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。精品文檔 查看全部

  精品文檔20 款最常使用的網(wǎng)路爬蟲(chóng)工具推薦 (2018)網(wǎng)絡(luò )爬蟲(chóng)在現今的許多領(lǐng)域得到廣泛應用。它的作用是從任何網(wǎng)站獲取特定的或 更新的數據并儲存出來(lái)。網(wǎng)絡(luò )爬蟲(chóng)工具越來(lái)越為人所熟知,因為網(wǎng)路爬蟲(chóng)簡(jiǎn)化并 自動(dòng)化了整個(gè)爬取過(guò)程,使每個(gè)人都可以輕松訪(fǎng)問(wèn)網(wǎng)站數據資源。使用網(wǎng)路爬蟲(chóng) 工具可以使人們免予重復打字或復制粘貼,我們可以太輕松的去采集網(wǎng)頁(yè)上的數 據。此外,這些網(wǎng)路爬蟲(chóng)工具可以使用戶(hù)就能以有條不紊和快速的抓取網(wǎng)頁(yè),而 無(wú)需編程并將數據轉換為符合其需求的各類(lèi)格式。在這篇文章中網(wǎng)絡(luò )爬蟲(chóng)軟件下載,我將介紹目前比較流行的 20 款網(wǎng)路爬蟲(chóng)工具供你參考。希望你 能找到最適宜你需求的工具。1. 八爪魚(yú)八爪魚(yú)是一款免費且功能強悍的網(wǎng)站爬蟲(chóng),用于從網(wǎng)站上提取你須要的幾乎所有 類(lèi)型的數據。你可以使用八爪魚(yú)來(lái)采集市面上幾乎所有的網(wǎng)站。八爪魚(yú)提供兩種精品文檔精品文檔采集模式 - 簡(jiǎn)易模式和自定義采集模式,非程序員可以快速習慣使用八爪魚(yú)。 下載免費軟件后,其可視化界面容許你從網(wǎng)站上獲取所有文本,因此你可以下載 幾乎所有網(wǎng)站內容并將其保存為結構化格式,如 EXCEL,TXT,HTML 或你的數 據庫。 你可以使用其外置的正則表達式工具從復雜的網(wǎng)站布局中提取許多棘手網(wǎng)站的 數據,并使用 XPath 配置工具精確定位 Web 元素。
  另外八爪魚(yú)提供手動(dòng)辨識驗 證碼以及代理 IP 切換功能,可以有效的防止網(wǎng)站防采集。 總之,八爪魚(yú)可以滿(mǎn)足用戶(hù)最基本或中級的采集需求,而無(wú)需任何編程技能。2. HTTrack作為免費的網(wǎng)站爬蟲(chóng)軟件,HTTrack 提供的功能十分適宜從互聯(lián)網(wǎng)下載整個(gè)網(wǎng)站 到你的 PC。它提供了適用于 Windows,Linux,Sun Solaris 和其他 Unix 系統 的版本。它可以將一個(gè)站點(diǎn)或多個(gè)站點(diǎn)鏡像在一起(使用共享鏈接)。你可以在 “設置選項”下下載網(wǎng)頁(yè)時(shí)決定要同時(shí)打開(kāi)的連接數。你可以從整個(gè)目錄中獲取 照片,文件,HTML 代碼,更新當前鏡像的網(wǎng)站并恢復中斷的下載。精品文檔精品文檔據悉,HTTTrack 還提供代理支持,以通過(guò)可選身分驗證最大限度地提升速率。 HTTrack 用作命令行程序,或通過(guò) shell 用于私有(捕獲)或專(zhuān)業(yè)(在線(xiàn) Web 鏡像)使用。 有了這樣的說(shuō)法,HTTrack 應該是首選,并且具有中級編程技能 的人更多地使用它。3、 ScraperScraper 是 Chrome 擴展程序,具有有限的數據提取功能,但它有助于進(jìn)行在 線(xiàn)研究并將數據導入到 Google sheets。
  此工具適用于初學(xué)者以及可以使用 OAuth 輕松將數據復制到剪貼板或儲存到電子表格的專(zhuān)家。Scraper 是一個(gè)免 費的網(wǎng)路爬蟲(chóng)工具,可以在你的瀏覽器中正常工作,并手動(dòng)生成較小的 XPath 來(lái)定義要抓取的 URL。4、OutWit Hub精品文檔精品文檔Outwit Hub 是一個(gè) Firefox 添加件,它有兩個(gè)目的:搜集信息和管理信息。它 可以分別用在網(wǎng)站上不同的部份提供不同的窗口條。還提供用戶(hù)一個(gè)快速步入信 息的方式,虛擬移除網(wǎng)站上別的部份。 OutWit Hub 提供單一界面,可依照須要抓取微小或大量數據。OutWit Hub 允許你從瀏覽器本身抓取任何網(wǎng)頁(yè),甚至可以創(chuàng )建手動(dòng)代理來(lái)提取數據并按照設 置對其進(jìn)行低格。 OutWit Hub 大多功能都是免費的,能夠深入剖析網(wǎng)站,自動(dòng)搜集整理組織互聯(lián) 網(wǎng)中的各項數據,并將網(wǎng)站信息分割開(kāi)來(lái),然后提取有效信息,形成可用的集合。 但是要手動(dòng)提取精確數據就須要付費版本了,同時(shí)免費版一次提取的數據量也是 有限制的,如果須要大批量的操作,可以選擇訂購專(zhuān)業(yè)版。 5. ParseHub精品文檔精品文檔Parsehub 是一個(gè)太棒的網(wǎng)路爬蟲(chóng),支持從使用 AJAX 技術(shù),JavaScript,cookie 等的網(wǎng)站收集數據。
  它的機器學(xué)習技術(shù)可以讀取,分析之后將 Web 文檔轉換為 相關(guān)數據。 Parsehub 的桌面應用程序支持 Windows,Mac OS X 和 Linux 等系統,或者 你可以使用瀏覽器中外置的 Web 應用程序。 作為免費軟件,你可以在 Parsehub 中設置不超過(guò)五個(gè) publice 項目。付費版本 允許你創(chuàng )建起碼 20private 項目來(lái)抓取網(wǎng)站。6. ScrapinghubScrapinghub 是一種基于云的數據提取工具,可幫助數千名開(kāi)發(fā)人員獲取有價(jià) 值的數據。它的開(kāi)源視覺(jué)抓取工具,允許用戶(hù)在沒(méi)有任何編程知識的情況下抓取 網(wǎng)站。 Scrapinghub 使用 Crawlera,一家代理 IP 第三方平臺,支持繞開(kāi)防采集對策。 它使用戶(hù)就能從多個(gè) IP 和位置進(jìn)行網(wǎng)頁(yè)抓取,而無(wú)需通過(guò)簡(jiǎn)單的 HTTP API 進(jìn) 行代理管理。 Scrapinghub 將整個(gè)網(wǎng)頁(yè)轉換為有組織的內容。如果其爬蟲(chóng)工具難以滿(mǎn)足你的 要求,其專(zhuān)家團隊可以提供幫助。。精品文檔精品文檔7. Dexi.io作為基于瀏覽器的網(wǎng)路爬蟲(chóng),Dexi.io 允許你從任何網(wǎng)站基于瀏覽器抓取數據, 并提供三種類(lèi)型的爬蟲(chóng)來(lái)創(chuàng )建采集任務(wù)。
  免費軟件為你的網(wǎng)路抓取提供匿名 Web 代理服務(wù)器,你提取的數據將在存檔數據之前在 Dexi.io 的服務(wù)器上托管 兩周,或者你可以直接將提取的數據導入到 JSON 或 CSV 文件。它提供付費服 務(wù),以滿(mǎn)足你獲取實(shí)時(shí)數據的需求。8. Webhose.ioWebhose.io 使用戶(hù)才能將來(lái)自世界各地的在線(xiàn)資源抓取的實(shí)時(shí)數據轉換為各 種標準的格式。通過(guò)此 Web 爬網(wǎng)程序,你可以使用囊括各類(lèi)來(lái)源的多個(gè)過(guò)濾器 來(lái)抓取數據并進(jìn)一步提取多種語(yǔ)言的關(guān)鍵字。 你可以將刪掉的數據保存為 XML,JSON 和 RSS 格式。并且容許用戶(hù)從其存檔 訪(fǎng)問(wèn)歷史數據。此外,webhose.io 支持最多 80 種語(yǔ)言及其爬行數據結果。用 戶(hù)可以輕松索引和搜索 Webhose.io 抓取的結構化數據。精品文檔精品文檔總的來(lái)說(shuō),Webhose.io 可以滿(mǎn)足用戶(hù)的基本爬行要求。9.Import.io用戶(hù)只需從特定網(wǎng)頁(yè)導出數據并將數據導入到 CSV 即可產(chǎn)生自己的數據集。 你可以在幾分鐘內輕松抓取數千個(gè)網(wǎng)頁(yè),而無(wú)需編撰任何代碼,并按照你的要求 構建 1000 多個(gè) API。公共 API 提供了強悍而靈活的功能來(lái)以編程方法控制 Import.io 并獲得對數據的手動(dòng)訪(fǎng)問(wèn),Import.io 通過(guò)將 Web 數據集成到你自己 的應用程序或網(wǎng)站中,只需點(diǎn)擊幾下就可以輕松實(shí)現爬網(wǎng)。
   為了更好地滿(mǎn)足用戶(hù)的爬行需求,它還提供適用于 Windows,Mac OS X 和 Linux 的免費應用程序,以建立數據提取器和抓取工具,下載數據并與在線(xiàn)賬戶(hù) 同步。此外,用戶(hù)還可以每周網(wǎng)絡(luò )爬蟲(chóng)軟件下載,每天或每小時(shí)安排抓取任務(wù)。10.80legs精品文檔精品文檔80legs 是一個(gè)功能強悍的網(wǎng)路抓取工具,可以按照自定義要求進(jìn)行配置。它支 持獲取大量數據以及立刻下載提取數據的選項。80legs 提供高性能的 Web 爬 行,可以快速工作并在幾秒鐘內獲取所需的數據11. Content GraberContent Graber 是一款面向企業(yè)的網(wǎng)路爬行軟件。它容許你創(chuàng )建獨立的 Web 爬網(wǎng)代理。它可以從幾乎任何網(wǎng)站中提取內容,并以你選擇的格式將其保存為結 構化數據,包括 Excel 報告,XML,CSV 和大多數數據庫。它更適宜具有中級編程技能的人,因為它為有須要的人提供了許多強悍的腳本編 輯和調試界面。允許用戶(hù)使用 C?;?VB.NET 調試或編撰腳本來(lái)編程控制爬網(wǎng)過(guò) 程。例如,Content Grabber 可以與 Visual Studio 2013 集成,以便按照用戶(hù) 的特定需求為中級且機智的自定義爬蟲(chóng)提供最強悍的腳本編輯,調試和單元測 試。
  精品文檔精品文檔12. UiPathUiPath 是一款用于免費網(wǎng)路抓取的機器人過(guò)程自動(dòng)化軟件。它可以手動(dòng)從大多 數第三方應用程序中抓取 Web 和桌面數據。如果運行 Windows 系統,則可以 安裝機械手過(guò)程自動(dòng)化軟件。Uipath 能夠跨多個(gè)網(wǎng)頁(yè)提取表格和基于模式的數 據。 Uipath 提供了用于進(jìn)一步爬行的外置工具。處理復雜的 UI 時(shí),此方式十分有效。 Screen Scraping Tool 可以處理單個(gè)文本元素,文本組和文本塊,例如表格格 式的數據提取。 此外,創(chuàng )建智能 Web 代理不需要編程,但你內部的.NET 黑客可以完全控制數 據。精品文檔精品文檔其實(shí),在里面我提及的爬蟲(chóng)可以滿(mǎn)足大多數用戶(hù)的基本爬行需求,這些工具中各 自的功能依然存在好多差別,大家可以按照自己的需求選擇合適的。八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。精品文檔精品文檔2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。精品文檔

一個(gè)網(wǎng)站除了百度以外爬蟲(chóng)其爬蟲(chóng)是那什么呀

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 321 次瀏覽 ? 2020-05-06 08:02 ? 來(lái)自相關(guān)話(huà)題

  
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬
  蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web
  Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。
  實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的[1]
  。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web
  Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。
  由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方
  式,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值[1]
  。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略[1]
  。
  1)
  深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。
  爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后e799bee5baa6e79fa5e98193e78988e69d8331333361313931,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索,
  但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費[1]
  。
  2)
  廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面百度網(wǎng)絡(luò )爬蟲(chóng),處于較淺目錄層次的頁(yè)面首先被爬行。
  當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。
  這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題百度網(wǎng)絡(luò )爬蟲(chóng),實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn),不足之處在于需較長(cháng)時(shí)間能夠爬行
  到目錄層次較深的頁(yè)面[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused
  Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)[8]。
  和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群
  對特定領(lǐng)域信息的需求[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同[1]
  。
  1)
  基于內容評價(jià)的爬行策略:DeBra將文本相似度的估算方式引入到網(wǎng)路爬蟲(chóng)中,提出了 Fish Search
  算法,它將用戶(hù)輸入的查詢(xún)詞作為主題,包含查詢(xún)詞的頁(yè)面被視為與主題相關(guān),其局限性在于難以評價(jià)頁(yè)面與主題相關(guān) 度 的 高 低 。
  Herseovic對 Fish Search 算 法 進(jìn) 行 了 改 進(jìn) ,提 出 了 Sharksearch
  算法,利用空間向量模型估算頁(yè)面與主題的相關(guān)度大小[1]
  。
  2) 基于鏈接結構評價(jià)的爬行策略 :Web
  頁(yè)面作為一種半結構化文檔,包含好多結構信息,可拿來(lái)評價(jià)鏈接重要性。 PageRank
  算法最初用于搜索引擎信息檢索中對查詢(xún)結果進(jìn)行排序,也可用于評價(jià)鏈接重要性,具體做法就是每次選擇 PageRank 值較大頁(yè)面中的鏈接來(lái)訪(fǎng)問(wèn)。
  另一個(gè)借助 Web結構評價(jià)鏈接價(jià)值的方式是 HITS 方法,它通過(guò)估算每位已訪(fǎng)問(wèn)頁(yè)面的 Authority 權重和 Hub
  權重,并借此決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  3) 基于提高學(xué)習的爬行策略:Rennie 和 McCallum 將提高學(xué)習引入聚焦爬蟲(chóng),利用貝葉斯分類(lèi)器,根據整個(gè)網(wǎng)頁(yè)文本和鏈接文本對超鏈接進(jìn)行分類(lèi),為每位鏈接估算出重要性,從而決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  4) 基于語(yǔ)境圖的爬行策略:Diligenti
  等人提出了一種通過(guò)構建語(yǔ)境圖(Context Graphs)學(xué)習網(wǎng)頁(yè)之間的相關(guān)度,訓練一個(gè)機器學(xué)習系統,通過(guò)該系統可估算當前頁(yè)面到相關(guān) Web
  頁(yè)面的距離,距離越逾的頁(yè)面中的鏈接優(yōu)先訪(fǎng)問(wèn)。印度理工大學(xué)(IIT)和 IBM 研究中心的研究人員開(kāi)發(fā)了一個(gè)典型的聚焦網(wǎng)路爬蟲(chóng)。
  該爬蟲(chóng)對主題的定義既不是采用關(guān)鍵詞也不是加權矢量,而是一組具有相同主題的網(wǎng)頁(yè)。
  它包含兩個(gè)重要模塊:一個(gè)是分類(lèi)器,用來(lái)估算所爬行的頁(yè)面與主題的相關(guān)度,確定是否與主題相關(guān);另一個(gè)是凈化器,用來(lái)辨識通過(guò)較少鏈接聯(lián)接到大量相關(guān)頁(yè)面
  的中心頁(yè)面[1]
  。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指
  對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。
  和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面
  ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量
  式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集[1]
  。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地
  頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1)
  統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3)
  基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè)[1]
  。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣
  度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的
  WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定,而是采用一種自適應的方
  法依照當初爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外
  Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。
  為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè)
  ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè)[1]
  。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface
  Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。
  表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web
  是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web
  頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web
  中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源[1]
  。
  Deep Web 爬蟲(chóng)體系結構包含六個(gè)基本功能模塊
 ?。ㄅ佬锌刂破?、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個(gè)爬蟲(chóng)內部數據結構(URL 列表、LVS 表)。 其中
  LVS(Label Value Set)表示標簽/數值集合,用來(lái)表示填充表單的數據源[1]
  。
  Deep Web 爬蟲(chóng)爬行過(guò)程中最重要部份就是表單填寫(xiě),包含兩種類(lèi)型:
  1)
  基于領(lǐng)域知識的表單填寫(xiě):此方式通常會(huì )維持一個(gè)本體庫,通過(guò)語(yǔ)義剖析來(lái)選定合適的關(guān)鍵詞填寫(xiě)表單。 Yiyao Lu[25]等人提出一種獲取 Form
  表單信息的多注解方式,將數據表單按語(yǔ)義分配到各個(gè)組中
  ,對每組從多方面注解,結合各類(lèi)注解結果來(lái)預測一個(gè)最終的注解標簽;鄭冬冬等人借助一個(gè)預定義的領(lǐng)域本體知識庫來(lái)辨識 Deep Web 頁(yè)面內容,
  同時(shí)借助一些來(lái)自 Web 站點(diǎn)導航模式來(lái)辨識手動(dòng)填寫(xiě)表單時(shí)所需進(jìn)行的路徑導航[1]
  。
  2) 基于網(wǎng)頁(yè)結構剖析的表單填寫(xiě):
  此方式通常無(wú)領(lǐng)域知識或僅有有限的領(lǐng)域知識,將網(wǎng)頁(yè)表單表示成 DOM 樹(shù),從中提取表單各數組值。 Desouky 等人提出一種 LEHW
  方法,該方式將 HTML 網(wǎng)頁(yè)表示為DOM 樹(shù)方式,將表單分辨為單屬性表單和多屬性表單,分別進(jìn)行處理;孫彬等人提出一種基于 XQuery
  的搜索系統,它就能模擬表單和特殊頁(yè)面標記切換,把網(wǎng)頁(yè)關(guān)鍵字切換信息描述為三元組單元,按照一定規則排除無(wú)效表單,將 Web 文檔構造成 DOM
  樹(shù),利用 XQuery 將文字屬性映射到表單數組[1]
  。
  Raghavan 等人提出的 HIWE 系統中,爬行管理器負責管理整個(gè)爬行過(guò)程,分析下載的頁(yè)面,將包含表單的頁(yè)面遞交表單處理器處理,表單處理器先從頁(yè)面中提取表單,從預先打算好的數據集中選擇數據手動(dòng)填充并遞交表單,由爬行控制器下載相應的結果頁(yè)面[1]
  。 查看全部
  
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬
  蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web
  Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。
  實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的[1]
  。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web
  Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。
  由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方
  式,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值[1]
  。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略[1]
  。
  1)
  深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。
  爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后e799bee5baa6e79fa5e98193e78988e69d8331333361313931,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索,
  但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費[1]
  。
  2)
  廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面百度網(wǎng)絡(luò )爬蟲(chóng),處于較淺目錄層次的頁(yè)面首先被爬行。
  當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。
  這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題百度網(wǎng)絡(luò )爬蟲(chóng),實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn),不足之處在于需較長(cháng)時(shí)間能夠爬行
  到目錄層次較深的頁(yè)面[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused
  Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)[8]。
  和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群
  對特定領(lǐng)域信息的需求[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同[1]
  。
  1)
  基于內容評價(jià)的爬行策略:DeBra將文本相似度的估算方式引入到網(wǎng)路爬蟲(chóng)中,提出了 Fish Search
  算法,它將用戶(hù)輸入的查詢(xún)詞作為主題,包含查詢(xún)詞的頁(yè)面被視為與主題相關(guān),其局限性在于難以評價(jià)頁(yè)面與主題相關(guān) 度 的 高 低 。
  Herseovic對 Fish Search 算 法 進(jìn) 行 了 改 進(jìn) ,提 出 了 Sharksearch
  算法,利用空間向量模型估算頁(yè)面與主題的相關(guān)度大小[1]
  。
  2) 基于鏈接結構評價(jià)的爬行策略 :Web
  頁(yè)面作為一種半結構化文檔,包含好多結構信息,可拿來(lái)評價(jià)鏈接重要性。 PageRank
  算法最初用于搜索引擎信息檢索中對查詢(xún)結果進(jìn)行排序,也可用于評價(jià)鏈接重要性,具體做法就是每次選擇 PageRank 值較大頁(yè)面中的鏈接來(lái)訪(fǎng)問(wèn)。
  另一個(gè)借助 Web結構評價(jià)鏈接價(jià)值的方式是 HITS 方法,它通過(guò)估算每位已訪(fǎng)問(wèn)頁(yè)面的 Authority 權重和 Hub
  權重,并借此決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  3) 基于提高學(xué)習的爬行策略:Rennie 和 McCallum 將提高學(xué)習引入聚焦爬蟲(chóng),利用貝葉斯分類(lèi)器,根據整個(gè)網(wǎng)頁(yè)文本和鏈接文本對超鏈接進(jìn)行分類(lèi),為每位鏈接估算出重要性,從而決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  4) 基于語(yǔ)境圖的爬行策略:Diligenti
  等人提出了一種通過(guò)構建語(yǔ)境圖(Context Graphs)學(xué)習網(wǎng)頁(yè)之間的相關(guān)度,訓練一個(gè)機器學(xué)習系統,通過(guò)該系統可估算當前頁(yè)面到相關(guān) Web
  頁(yè)面的距離,距離越逾的頁(yè)面中的鏈接優(yōu)先訪(fǎng)問(wèn)。印度理工大學(xué)(IIT)和 IBM 研究中心的研究人員開(kāi)發(fā)了一個(gè)典型的聚焦網(wǎng)路爬蟲(chóng)。
  該爬蟲(chóng)對主題的定義既不是采用關(guān)鍵詞也不是加權矢量,而是一組具有相同主題的網(wǎng)頁(yè)。
  它包含兩個(gè)重要模塊:一個(gè)是分類(lèi)器,用來(lái)估算所爬行的頁(yè)面與主題的相關(guān)度,確定是否與主題相關(guān);另一個(gè)是凈化器,用來(lái)辨識通過(guò)較少鏈接聯(lián)接到大量相關(guān)頁(yè)面
  的中心頁(yè)面[1]
  。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指
  對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。
  和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面
  ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量
  式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集[1]
  。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地
  頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1)
  統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3)
  基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè)[1]
  。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣
  度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的
  WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定,而是采用一種自適應的方
  法依照當初爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外
  Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。
  為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè)
  ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè)[1]
  。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface
  Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。
  表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web
  是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web
  頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web
  中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源[1]
  。
  Deep Web 爬蟲(chóng)體系結構包含六個(gè)基本功能模塊
 ?。ㄅ佬锌刂破?、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個(gè)爬蟲(chóng)內部數據結構(URL 列表、LVS 表)。 其中
  LVS(Label Value Set)表示標簽/數值集合,用來(lái)表示填充表單的數據源[1]
  。
  Deep Web 爬蟲(chóng)爬行過(guò)程中最重要部份就是表單填寫(xiě),包含兩種類(lèi)型:
  1)
  基于領(lǐng)域知識的表單填寫(xiě):此方式通常會(huì )維持一個(gè)本體庫,通過(guò)語(yǔ)義剖析來(lái)選定合適的關(guān)鍵詞填寫(xiě)表單。 Yiyao Lu[25]等人提出一種獲取 Form
  表單信息的多注解方式,將數據表單按語(yǔ)義分配到各個(gè)組中
  ,對每組從多方面注解,結合各類(lèi)注解結果來(lái)預測一個(gè)最終的注解標簽;鄭冬冬等人借助一個(gè)預定義的領(lǐng)域本體知識庫來(lái)辨識 Deep Web 頁(yè)面內容,
  同時(shí)借助一些來(lái)自 Web 站點(diǎn)導航模式來(lái)辨識手動(dòng)填寫(xiě)表單時(shí)所需進(jìn)行的路徑導航[1]
  。
  2) 基于網(wǎng)頁(yè)結構剖析的表單填寫(xiě):
  此方式通常無(wú)領(lǐng)域知識或僅有有限的領(lǐng)域知識,將網(wǎng)頁(yè)表單表示成 DOM 樹(shù),從中提取表單各數組值。 Desouky 等人提出一種 LEHW
  方法,該方式將 HTML 網(wǎng)頁(yè)表示為DOM 樹(shù)方式,將表單分辨為單屬性表單和多屬性表單,分別進(jìn)行處理;孫彬等人提出一種基于 XQuery
  的搜索系統,它就能模擬表單和特殊頁(yè)面標記切換,把網(wǎng)頁(yè)關(guān)鍵字切換信息描述為三元組單元,按照一定規則排除無(wú)效表單,將 Web 文檔構造成 DOM
  樹(shù),利用 XQuery 將文字屬性映射到表單數組[1]
  。
  Raghavan 等人提出的 HIWE 系統中,爬行管理器負責管理整個(gè)爬行過(guò)程,分析下載的頁(yè)面,將包含表單的頁(yè)面遞交表單處理器處理,表單處理器先從頁(yè)面中提取表單,從預先打算好的數據集中選擇數據手動(dòng)填充并遞交表單,由爬行控制器下載相應的結果頁(yè)面[1]
  。

java爬蟲(chóng)技術(shù)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 297 次瀏覽 ? 2020-06-27 08:00 ? 來(lái)自相關(guān)話(huà)題

  htmlparse
  jsoup
  HeritrixNutch
  java 抓取網(wǎng)頁(yè)內容
  爬蟲(chóng)
  java 爬蟲(chóng)比較
  Nutch
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介:
  Apache的子項目之一,屬于Lucene項目下的子項目。
  Nutch是一個(gè)基于Lucene,類(lèi)似Google的完整網(wǎng)路搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類(lèi)似Eclipse的插件機制保證了系統的可客戶(hù)化,而且很容易集成到自己的應用之中。
  Larbin
  開(kāi)發(fā)語(yǔ)言:C++
  簡(jiǎn)介
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。
  Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。
  latbin最初的設計也是根據設計簡(jiǎn)單而且高度可配置性的原則,因此我們可以看見(jiàn),一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè),非常高效。
  Heritrix
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介
  與Nutch比較
  和 Nutch。二者均為Java開(kāi)源框架,Heritrix是 SourceForge上的開(kāi)源產(chǎn)品,Nutch為Apache的一個(gè)子項目,它們都叫做網(wǎng)絡(luò )爬蟲(chóng)/蜘蛛( Web Crawler),它們實(shí)現的原理基本一致:深度遍歷網(wǎng)站的資源,將這種資源抓取到本地,使用的技巧都是剖析網(wǎng)站每一個(gè)有效的URI,并遞交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。
  Heritrix是個(gè) “archival crawler” — 用來(lái)獲取完整的、精確的、站點(diǎn)內容的深度復制。包括獲取圖象以及其他非文本內容。抓取并儲存相關(guān)的內容。對內容來(lái)者不拒,不對頁(yè)面進(jìn)行內容上的更改。重新爬行對相同的URL不針對原先的進(jìn)行替換。爬蟲(chóng)通過(guò)Web用戶(hù)界面啟動(dòng)、監控、調整,允許彈性的定義要獲取的URL。
  二者的差別:
  Nutch 只獲取并保存可索引的內容。Heritrix則是照單全收。力求保存頁(yè)面原樣
  Nutch 可以修剪內容,或者對內容格式進(jìn)行轉換。
  Nutch 保存內容為數據庫優(yōu)化格式以便之后索引;刷新替換舊的內容。而Heritrix是添加(追加)新的內容。
  Nutch 從命令行運行、控制。Heritrix有 Web 控制管理界面。
  Nutch 的訂制能力不夠強,不過(guò)現今早已有了一定改進(jìn)。Heritrix可控制的參數更多。
  Heritrix提供的功能沒(méi)有nutch多,有點(diǎn)整站下載的氣味。既沒(méi)有索引又沒(méi)有解析,甚至對于重復爬取URL都處理不是挺好。
  Heritrix的功能強悍 但是配置上去卻有點(diǎn)麻煩。
  其他網(wǎng)路爬蟲(chóng)介紹:
  WebLech
  WebLech是一個(gè)功能強悍的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下載web站點(diǎn)并才能盡可能模仿標準Web瀏覽器的行為。WebLech有一個(gè)功能控制臺并采用多線(xiàn)程操作。
  Arale
  Arale主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。Arale才能下載整個(gè)web站點(diǎn)或來(lái)自web站點(diǎn)的個(gè)別資源。Arale能夠夠把動(dòng)態(tài)頁(yè)面映射成靜態(tài)頁(yè)面。
  J-Spider
  J-Spider:是一個(gè)完全可配置和訂制的Web Spider引擎.你可以借助它來(lái)檢測網(wǎng)站的錯誤(內在的服務(wù)器錯誤等),網(wǎng)站內外部鏈接檢測java爬蟲(chóng)技術(shù),分析網(wǎng)站的結構(可創(chuàng )建一個(gè)網(wǎng)站地圖),下載整個(gè)Web站點(diǎn),你還可以寫(xiě)一個(gè)JSpider插件來(lái)擴充你所須要的功能。
  spindle
  spindle 是一個(gè)建立在Lucene工具包之上的Web索引/搜索工具.它包括一個(gè)用于創(chuàng )建索引的HTTP spider和一個(gè)用于搜索這種索引的搜索類(lèi)。spindle項目提供了一組JSP標簽庫促使這些基于JSP的站點(diǎn)不需要開(kāi)發(fā)任何Java類(lèi)能夠夠降低搜索功能。
  Arachnid
  Arachnid: 是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  LARM
  LARM才能為Jakarta Lucene搜索引擎框架的用戶(hù)提供一個(gè)純Java的搜索解決方案。它包含才能為文件,數據庫表格構建索引的方式和為Web站點(diǎn)建索引的爬蟲(chóng)。
  JoBo
  JoBo 是一個(gè)用于下載整個(gè)Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè)Web Spider。與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充form(如:自動(dòng)登入)和使用cookies來(lái)處理session。JoBo還有靈活的下載規則(如:通過(guò)網(wǎng)頁(yè)的URL,大小,MIME類(lèi)型等)來(lái)限制下載。
  snoics-reptile
  snoics-reptile是用純Java開(kāi)發(fā)的,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以使用配制文件中提供的URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò)GET的方法獲取到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如:圖片、flash、mp3、zip、rar、exe等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng)站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到web服務(wù)器(如:Apache)中,就可以實(shí)現完整的網(wǎng)站鏡像。
  Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  spiderpy
  spiderpy是一個(gè)基于Python編碼的一個(gè)開(kāi)源web爬蟲(chóng)工具,允許用戶(hù)搜集文件和搜索網(wǎng)站,并有一個(gè)可配置的界面。
  The Spider Web Network Xoops Mod Team
  pider Web Network Xoops Mod是一個(gè)Xoops下的模塊java爬蟲(chóng)技術(shù),完全由PHP語(yǔ)言實(shí)現。
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架, 沒(méi)有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務(wù), 支持N機分布式下載, 支持網(wǎng)站定向下載(需要配置hispiderd.iniwhitelist). 查看全部

  htmlparse
  jsoup
  HeritrixNutch
  java 抓取網(wǎng)頁(yè)內容
  爬蟲(chóng)
  java 爬蟲(chóng)比較
  Nutch
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介:
  Apache的子項目之一,屬于Lucene項目下的子項目。
  Nutch是一個(gè)基于Lucene,類(lèi)似Google的完整網(wǎng)路搜索引擎解決方案,基于Hadoop的分布式處理模型保證了系統的性能,類(lèi)似Eclipse的插件機制保證了系統的可客戶(hù)化,而且很容易集成到自己的應用之中。
  Larbin
  開(kāi)發(fā)語(yǔ)言:C++
  簡(jiǎn)介
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。
  Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。
  latbin最初的設計也是根據設計簡(jiǎn)單而且高度可配置性的原則,因此我們可以看見(jiàn),一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè),非常高效。
  Heritrix
  開(kāi)發(fā)語(yǔ)言:Java
  簡(jiǎn)介
  與Nutch比較
  和 Nutch。二者均為Java開(kāi)源框架,Heritrix是 SourceForge上的開(kāi)源產(chǎn)品,Nutch為Apache的一個(gè)子項目,它們都叫做網(wǎng)絡(luò )爬蟲(chóng)/蜘蛛( Web Crawler),它們實(shí)現的原理基本一致:深度遍歷網(wǎng)站的資源,將這種資源抓取到本地,使用的技巧都是剖析網(wǎng)站每一個(gè)有效的URI,并遞交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。
  Heritrix是個(gè) “archival crawler” — 用來(lái)獲取完整的、精確的、站點(diǎn)內容的深度復制。包括獲取圖象以及其他非文本內容。抓取并儲存相關(guān)的內容。對內容來(lái)者不拒,不對頁(yè)面進(jìn)行內容上的更改。重新爬行對相同的URL不針對原先的進(jìn)行替換。爬蟲(chóng)通過(guò)Web用戶(hù)界面啟動(dòng)、監控、調整,允許彈性的定義要獲取的URL。
  二者的差別:
  Nutch 只獲取并保存可索引的內容。Heritrix則是照單全收。力求保存頁(yè)面原樣
  Nutch 可以修剪內容,或者對內容格式進(jìn)行轉換。
  Nutch 保存內容為數據庫優(yōu)化格式以便之后索引;刷新替換舊的內容。而Heritrix是添加(追加)新的內容。
  Nutch 從命令行運行、控制。Heritrix有 Web 控制管理界面。
  Nutch 的訂制能力不夠強,不過(guò)現今早已有了一定改進(jìn)。Heritrix可控制的參數更多。
  Heritrix提供的功能沒(méi)有nutch多,有點(diǎn)整站下載的氣味。既沒(méi)有索引又沒(méi)有解析,甚至對于重復爬取URL都處理不是挺好。
  Heritrix的功能強悍 但是配置上去卻有點(diǎn)麻煩。
  其他網(wǎng)路爬蟲(chóng)介紹:
  WebLech
  WebLech是一個(gè)功能強悍的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下載web站點(diǎn)并才能盡可能模仿標準Web瀏覽器的行為。WebLech有一個(gè)功能控制臺并采用多線(xiàn)程操作。
  Arale
  Arale主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。Arale才能下載整個(gè)web站點(diǎn)或來(lái)自web站點(diǎn)的個(gè)別資源。Arale能夠夠把動(dòng)態(tài)頁(yè)面映射成靜態(tài)頁(yè)面。
  J-Spider
  J-Spider:是一個(gè)完全可配置和訂制的Web Spider引擎.你可以借助它來(lái)檢測網(wǎng)站的錯誤(內在的服務(wù)器錯誤等),網(wǎng)站內外部鏈接檢測java爬蟲(chóng)技術(shù),分析網(wǎng)站的結構(可創(chuàng )建一個(gè)網(wǎng)站地圖),下載整個(gè)Web站點(diǎn),你還可以寫(xiě)一個(gè)JSpider插件來(lái)擴充你所須要的功能。
  spindle
  spindle 是一個(gè)建立在Lucene工具包之上的Web索引/搜索工具.它包括一個(gè)用于創(chuàng )建索引的HTTP spider和一個(gè)用于搜索這種索引的搜索類(lèi)。spindle項目提供了一組JSP標簽庫促使這些基于JSP的站點(diǎn)不需要開(kāi)發(fā)任何Java類(lèi)能夠夠降低搜索功能。
  Arachnid
  Arachnid: 是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  LARM
  LARM才能為Jakarta Lucene搜索引擎框架的用戶(hù)提供一個(gè)純Java的搜索解決方案。它包含才能為文件,數據庫表格構建索引的方式和為Web站點(diǎn)建索引的爬蟲(chóng)。
  JoBo
  JoBo 是一個(gè)用于下載整個(gè)Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè)Web Spider。與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充form(如:自動(dòng)登入)和使用cookies來(lái)處理session。JoBo還有靈活的下載規則(如:通過(guò)網(wǎng)頁(yè)的URL,大小,MIME類(lèi)型等)來(lái)限制下載。
  snoics-reptile
  snoics-reptile是用純Java開(kāi)發(fā)的,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以使用配制文件中提供的URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò)GET的方法獲取到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如:圖片、flash、mp3、zip、rar、exe等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng)站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到web服務(wù)器(如:Apache)中,就可以實(shí)現完整的網(wǎng)站鏡像。
  Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  spiderpy
  spiderpy是一個(gè)基于Python編碼的一個(gè)開(kāi)源web爬蟲(chóng)工具,允許用戶(hù)搜集文件和搜索網(wǎng)站,并有一個(gè)可配置的界面。
  The Spider Web Network Xoops Mod Team
  pider Web Network Xoops Mod是一個(gè)Xoops下的模塊java爬蟲(chóng)技術(shù),完全由PHP語(yǔ)言實(shí)現。
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架, 沒(méi)有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務(wù), 支持N機分布式下載, 支持網(wǎng)站定向下載(需要配置hispiderd.iniwhitelist).

爬蟲(chóng)工具匯總

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 319 次瀏覽 ? 2020-06-25 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  爬蟲(chóng)工具匯總 Heritrix Heritrix 是一個(gè)開(kāi)源,可擴充的 web爬蟲(chóng)項目。 Heritrix 設計成嚴格依照 robots.txt 文件的排除指示和 META robots 標簽。 WebSPHINX WebSPHIN是X 一個(gè) Java 類(lèi)包和 Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。 Web爬蟲(chóng) ( 也叫作 機器人或蜘蛛 ) 是可以手動(dòng)瀏覽與處理 Web頁(yè)面的程序。 WebSPHIN由X 兩部份組成 : 爬蟲(chóng)工作平臺和 WebSPHIN類(lèi)X 包。 ~rcm/websphinx/ WebLech WebLech是一個(gè)功能強悍的 Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下 載 web站點(diǎn)并才能盡可能模仿標準 Web瀏覽器的行為。 WebLech有一個(gè)功能控制臺 并采用多線(xiàn)程操作。 Arale Arale 主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。 Arale 能夠下載整個(gè) web站點(diǎn)或來(lái)自 web站點(diǎn)的個(gè)別資源。 Arale 還能夠把動(dòng)態(tài)頁(yè) 面映射成靜態(tài)頁(yè)面。 J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn)爬蟲(chóng)軟件下載,你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。
   spindle spindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè) 用于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。 spindle 項目提 供了一組 JSP標簽庫促使這些基于 JSP 的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低 搜索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎框架的用戶(hù)提供一個(gè)純 Java 的搜索解決 方案。它包含才能為文件,數據庫表格構建索引的方式和為 Web站點(diǎn)建索引的爬 蟲(chóng)。 JoBo JoBo 是一個(gè)用于下載整個(gè) Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè) Web Spider 。
   與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充 form( 如: 自動(dòng)登入 ) 和使用 cookies 來(lái)處理 session 。JoBo 還有靈活的下載規則 ( 如: 通過(guò)網(wǎng)頁(yè)的 URL,大小,MIME類(lèi)型等 ) 來(lái)限制下載。 snoics-reptile snoics -reptile 是用純 Java 開(kāi)發(fā)的爬蟲(chóng)軟件下載,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以讓 用配制文件中提供的 URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò) GET的方法獲取 到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如 : 圖片、 flash 、 mp3、 zip 、 rar 、exe 等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng) 站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到 web服務(wù)器 ( 如:Apache) 中,就可 以實(shí)現完整的網(wǎng)站鏡像。 Web-Harvest Web-Harvest 是一個(gè) Java 開(kāi)源 Web數據抽取工具。它還能搜集指定的 Web頁(yè)面 并從這種頁(yè)面中提取有用的數據。 Web-Harvest 主要是運用了象 XSLT,XQuery,正則 表達式等這種技術(shù)來(lái)實(shí)現對 text/xml 的操作。
   spiderpy spiderpy 是一個(gè)基于 Python 編碼的一個(gè)開(kāi)源 web爬蟲(chóng)工具,允許用戶(hù)搜集文 件和搜索網(wǎng)站,并有一個(gè)可配置的界面。 The Spider Web Network Xoops Mod Team pider Web Network Xoops Mod 是 一個(gè) Xoops 下的模塊,完全由 PHP語(yǔ)言實(shí)現。 Fetchgals Fetchgals 是一個(gè)基于 perl 多線(xiàn)程的 Web爬蟲(chóng),通過(guò) Tags 來(lái)搜索淫穢圖片。 larbin larbin 是個(gè)基于 C++的 web爬蟲(chóng)工具,擁有便于操作的界面,不過(guò)只能跑在 LINUX下,在一臺普通 PC下 larbin 每天可以爬 5 百萬(wàn)個(gè)頁(yè)面 ( 當然啦,需要擁有 良好的網(wǎng)路 ) J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn),你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。 spindle pindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè)用 于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。
   spindle 項目提供 了一組 JSP標簽庫促使這些基于 JSP的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低搜 索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎 查看全部

  
  爬蟲(chóng)工具匯總 Heritrix Heritrix 是一個(gè)開(kāi)源,可擴充的 web爬蟲(chóng)項目。 Heritrix 設計成嚴格依照 robots.txt 文件的排除指示和 META robots 標簽。 WebSPHINX WebSPHIN是X 一個(gè) Java 類(lèi)包和 Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。 Web爬蟲(chóng) ( 也叫作 機器人或蜘蛛 ) 是可以手動(dòng)瀏覽與處理 Web頁(yè)面的程序。 WebSPHIN由X 兩部份組成 : 爬蟲(chóng)工作平臺和 WebSPHIN類(lèi)X 包。 ~rcm/websphinx/ WebLech WebLech是一個(gè)功能強悍的 Web站點(diǎn)下載與鏡像工具。它支持按功能需求來(lái)下 載 web站點(diǎn)并才能盡可能模仿標準 Web瀏覽器的行為。 WebLech有一個(gè)功能控制臺 并采用多線(xiàn)程操作。 Arale Arale 主要為個(gè)人使用而設計,而沒(méi)有象其它爬蟲(chóng)一樣是關(guān)注于頁(yè)面索引。 Arale 能夠下載整個(gè) web站點(diǎn)或來(lái)自 web站點(diǎn)的個(gè)別資源。 Arale 還能夠把動(dòng)態(tài)頁(yè) 面映射成靜態(tài)頁(yè)面。 J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn)爬蟲(chóng)軟件下載,你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。
   spindle spindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè) 用于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。 spindle 項目提 供了一組 JSP標簽庫促使這些基于 JSP 的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低 搜索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎框架的用戶(hù)提供一個(gè)純 Java 的搜索解決 方案。它包含才能為文件,數據庫表格構建索引的方式和為 Web站點(diǎn)建索引的爬 蟲(chóng)。 JoBo JoBo 是一個(gè)用于下載整個(gè) Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè) Web Spider 。
   與其它下載工具相比較它的主要優(yōu)勢是能否手動(dòng)填充 form( 如: 自動(dòng)登入 ) 和使用 cookies 來(lái)處理 session 。JoBo 還有靈活的下載規則 ( 如: 通過(guò)網(wǎng)頁(yè)的 URL,大小,MIME類(lèi)型等 ) 來(lái)限制下載。 snoics-reptile snoics -reptile 是用純 Java 開(kāi)發(fā)的爬蟲(chóng)軟件下載,用來(lái)進(jìn)行網(wǎng)站鏡像抓取的工具,可以讓 用配制文件中提供的 URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過(guò) GET的方法獲取 到的資源全部抓取到本地,包括網(wǎng)頁(yè)和各類(lèi)類(lèi)型的文件,如 : 圖片、 flash 、 mp3、 zip 、 rar 、exe 等文件??梢詫⒄麄€(gè)網(wǎng)站完整地下傳至硬碟內,并能保持原有的網(wǎng) 站結構精確不變。只須要把抓取出來(lái)的網(wǎng)站放到 web服務(wù)器 ( 如:Apache) 中,就可 以實(shí)現完整的網(wǎng)站鏡像。 Web-Harvest Web-Harvest 是一個(gè) Java 開(kāi)源 Web數據抽取工具。它還能搜集指定的 Web頁(yè)面 并從這種頁(yè)面中提取有用的數據。 Web-Harvest 主要是運用了象 XSLT,XQuery,正則 表達式等這種技術(shù)來(lái)實(shí)現對 text/xml 的操作。
   spiderpy spiderpy 是一個(gè)基于 Python 編碼的一個(gè)開(kāi)源 web爬蟲(chóng)工具,允許用戶(hù)搜集文 件和搜索網(wǎng)站,并有一個(gè)可配置的界面。 The Spider Web Network Xoops Mod Team pider Web Network Xoops Mod 是 一個(gè) Xoops 下的模塊,完全由 PHP語(yǔ)言實(shí)現。 Fetchgals Fetchgals 是一個(gè)基于 perl 多線(xiàn)程的 Web爬蟲(chóng),通過(guò) Tags 來(lái)搜索淫穢圖片。 larbin larbin 是個(gè)基于 C++的 web爬蟲(chóng)工具,擁有便于操作的界面,不過(guò)只能跑在 LINUX下,在一臺普通 PC下 larbin 每天可以爬 5 百萬(wàn)個(gè)頁(yè)面 ( 當然啦,需要擁有 良好的網(wǎng)路 ) J-Spider J-Spider: 是一個(gè)完全可配置和訂制的 Web Spider 引擎 . 你可以借助它來(lái)檢測 網(wǎng)站的錯誤 ( 內在的服務(wù)器錯誤等 ), 網(wǎng)站內外部鏈接檢測,分析網(wǎng)站的結構 ( 可創(chuàng )建 一個(gè)網(wǎng)站地圖 ), 下載整個(gè) Web站點(diǎn),你還可以寫(xiě)一個(gè) JSpider 插件來(lái)擴充你所須要 的功能。 spindle pindle 是一個(gè)建立在 Lucene 工具包之上的 Web索引 / 搜索工具 . 它包括一個(gè)用 于創(chuàng )建索引的 HTTP spider 和一個(gè)用于搜索這種索引的搜索類(lèi)。
   spindle 項目提供 了一組 JSP標簽庫促使這些基于 JSP的站點(diǎn)不需要開(kāi)發(fā)任何 Java 類(lèi)能夠夠降低搜 索功能。 Arachnid Arachnid: 是一個(gè)基于 Java 的 web spider 框架 . 它包含一個(gè)簡(jiǎn)單的 HTML分析 器才能剖析包含 HTML內容的輸入流 . 通過(guò)實(shí)現 Arachnid 的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn) 單的 Web spiders 并才能在 Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid 的下載包中包含兩個(gè) spider 應用程序事例用于演示怎么使用該框架。 LARM LARM才能為 Jakarta Lucene 搜索引擎

網(wǎng)絡(luò )爬蟲(chóng)與Web安全

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 319 次瀏覽 ? 2020-06-11 08:02 ? 來(lái)自相關(guān)話(huà)題

  網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
  網(wǎng)絡(luò )爬蟲(chóng)與Web安全
  文/H3C攻守團隊
  網(wǎng)絡(luò )爬蟲(chóng)概述
  網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
  傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
  網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
  由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
  1)搜索目錄列表
  互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
  2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
  大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
  3)搜索管理員登入頁(yè)面
  許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
  4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
  互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
  因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
  前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
  1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
  2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
  3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
  /cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
  圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
  如何應對爬蟲(chóng)的安全恐嚇
  由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
  限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
  1) 設置robots.txt文件
  限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
  2) User Agent辨識與限制
  要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
  3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
  對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
  結束語(yǔ)
  網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。 查看全部

  網(wǎng)絡(luò )爬蟲(chóng)早已廣泛應用于互聯(lián)網(wǎng)搜索領(lǐng)域,為網(wǎng)路信息搜集與查詢(xún)提供了極大的便利爬蟲(chóng)網(wǎng)絡(luò ),同時(shí)也會(huì )對網(wǎng)路安全形成一定的負面影響。本文闡述了網(wǎng)路爬蟲(chóng)對網(wǎng)路安全構成的恐嚇,并討論相應的應對方式。
  網(wǎng)絡(luò )爬蟲(chóng)與Web安全
  文/H3C攻守團隊
  網(wǎng)絡(luò )爬蟲(chóng)概述
  網(wǎng)絡(luò )爬蟲(chóng)(Web Crawler),又稱(chēng)網(wǎng)路蜘蛛(Web Spider)或網(wǎng)路機器人(Web Robot),是一種根據一定的規則手動(dòng)抓取萬(wàn)維網(wǎng)資源的程序或則腳本,已被廣泛應用于互聯(lián)網(wǎng)領(lǐng)域。搜索引擎使用網(wǎng)路爬蟲(chóng)抓取Web網(wǎng)頁(yè)、文檔甚至圖片、音頻、視頻等資源,通過(guò)相應的索引技術(shù)組織這種信息,提供給搜索用戶(hù)進(jìn)行查詢(xún)。隨著(zhù)網(wǎng)路的迅速發(fā)展,萬(wàn)維網(wǎng)成為大量信息的載體,如何有效地提取并借助這種信息成為一個(gè)巨大的挑戰。不斷優(yōu)化的網(wǎng)路爬蟲(chóng)技術(shù)正在有效地應對這些挑戰,為高效搜索用戶(hù)關(guān)注的特定領(lǐng)域與主題提供了有力支撐。網(wǎng)絡(luò )爬蟲(chóng)也為中小站點(diǎn)的推廣提供了有效的途徑,網(wǎng)站針對搜索引擎爬蟲(chóng)的優(yōu)化曾風(fēng)靡一時(shí)。
  傳統網(wǎng)路爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL(Universal Resource Locator統一資源定位符)開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定條件停止抓取?,F階段網(wǎng)絡(luò )爬蟲(chóng)已發(fā)展為囊括網(wǎng)頁(yè)數據抽取、機器學(xué)習、數據挖掘、語(yǔ)義理解等多種方式綜合應用的智能工具。
  網(wǎng)絡(luò )爬蟲(chóng)的安全性問(wèn)題
  由于網(wǎng)路爬蟲(chóng)的策略是盡可能多的“爬過(guò)”網(wǎng)站中的高價(jià)值信息,會(huì )按照特定策略盡可能多的訪(fǎng)問(wèn)頁(yè)面,占用網(wǎng)路帶寬并降低Web服務(wù)器的處理開(kāi)支,不少大型站點(diǎn)的站長(cháng)發(fā)覺(jué)當網(wǎng)路爬蟲(chóng)光顧的時(shí)侯,訪(fǎng)問(wèn)流量將會(huì )有顯著(zhù)的下降。惡意用戶(hù)可以借助爬蟲(chóng)程序對Web站點(diǎn)發(fā)動(dòng)DoS攻擊,使Web服務(wù)在大量爬蟲(chóng)程序的暴力訪(fǎng)問(wèn)下,資源用盡而不能提供正常服務(wù)。惡意用戶(hù)還可能通過(guò)網(wǎng)路爬蟲(chóng)抓取各類(lèi)敏感資料用于不正當用途,主要表現在以下幾個(gè)方面:
  1)搜索目錄列表
  互聯(lián)網(wǎng)中的許多Web服務(wù)器在客戶(hù)端懇求該站點(diǎn)中某個(gè)沒(méi)有默認頁(yè)面的目錄時(shí),會(huì )返回一個(gè)目錄列表。該目錄列表一般包括可供用戶(hù)點(diǎn)擊的目錄和文件鏈接,通過(guò)這種鏈接可以訪(fǎng)問(wèn)下一層目錄及當前目錄中的文件。因而通過(guò)抓取目錄列表,惡意用戶(hù)常??色@取大量有用的資料,包括站點(diǎn)的目錄結構、敏感文件以及Web服務(wù)器設計構架及配置信息等等,比如程序使用的配置文件、日志文件、密碼文件、數據庫文件等爬蟲(chóng)網(wǎng)絡(luò ),都有可能被網(wǎng)路爬蟲(chóng)抓取。這些信息可以作為選購功擊目標或則直接入侵站點(diǎn)的重要資料。
  2)搜索測試頁(yè)面、手冊文檔、樣本程序及可能存在的缺陷程序
  大多數Web服務(wù)器軟件附送了測試頁(yè)面、幫助文檔、樣本程序及調試用側門(mén)程序等。這些文件常常會(huì )泄露大量的系統信息甚至提供繞開(kāi)認證直接訪(fǎng)問(wèn)Web服務(wù)數據的方式,成為惡意用戶(hù)剖析功擊Web服務(wù)器的有效情報來(lái)源。而且這種文件的存在本身也暗示網(wǎng)站中存在潛在的安全漏洞。
  3)搜索管理員登入頁(yè)面
  許多網(wǎng)路產(chǎn)品提供了基于Web的管理插口,允許管理員在互聯(lián)網(wǎng)中對其進(jìn)行遠程管理與控制。如果管理員忙于防范,沒(méi)有更改網(wǎng)路產(chǎn)品默認的管理員名及密碼,一旦其管理員登入頁(yè)面被惡意用戶(hù)搜索到,網(wǎng)絡(luò )安全將面臨極大的恐嚇。
  4)搜索互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料
  互聯(lián)網(wǎng)用戶(hù)的個(gè)人資料包括姓名、身份證號、電話(huà)、Email地址、QQ號、通信地址等個(gè)人信息,惡意用戶(hù)獲取后容易借助社會(huì )工程學(xué)施行功擊或盜竊。
  因此,采取適當的舉措限制網(wǎng)路爬蟲(chóng)的訪(fǎng)問(wèn)權限,向網(wǎng)路爬蟲(chóng)開(kāi)放網(wǎng)站希望推廣的頁(yè)面,屏蔽比較敏感的頁(yè)面,對于保持網(wǎng)站的安全運行、保護用戶(hù)的隱私是十分重要的。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描
  前面提及的網(wǎng)路爬蟲(chóng)對網(wǎng)站的間接安全恐嚇,是通過(guò)對網(wǎng)路站點(diǎn)的信息搜集為不法份子的非法訪(fǎng)問(wèn)、攻擊或盜竊作打算。隨著(zhù)安全技術(shù)的發(fā)展,利用網(wǎng)路爬蟲(chóng)技術(shù)對Web漏洞的直接偵測早已出現,這會(huì )直接影響到Web服務(wù)器的安全。Web服務(wù)器漏洞中,跨站腳本(Cross Site Script)漏洞與SQL注入(SQL Injection)漏洞所占比列很高,這兩種漏洞均可以通過(guò)對網(wǎng)路爬蟲(chóng)的改進(jìn)來(lái)進(jìn)行偵測。由于缺少足夠的安全知識,相當多的程序員在編撰Web應用程序時(shí)對網(wǎng)頁(yè)的懇求內容缺少足夠的檢測,使得不少Web應用程序存在安全隱患。用戶(hù)可以通過(guò)遞交一段悉心構造的包含SQL句子或腳本的URL懇求,根據程序的返回結果獲得有關(guān)的敏感信息甚至直接更改后臺數據?;谀壳暗陌踩F況,網(wǎng)絡(luò )爬蟲(chóng)技術(shù)在Web漏洞掃描上的應用,大大提升了發(fā)覺(jué)漏洞的效率。
  基于網(wǎng)路爬蟲(chóng)技術(shù)的Web漏洞掃描大至分為如下過(guò)程:
  1)頁(yè)面過(guò)濾:通過(guò)自動(dòng)化的程序抓取網(wǎng)站頁(yè)面,對包含<frame>、<a>、<image>、<form>等標簽的Web頁(yè)面進(jìn)行URL提取處理,這些HTML標簽中包含URL信息,便于惡意用戶(hù)進(jìn)行更深入的Web訪(fǎng)問(wèn)或遞交操作。
  2)URL匹配:對Web頁(yè)面中的URL進(jìn)行手動(dòng)匹配,提取由參數組合而成的動(dòng)態(tài)查詢(xún)URL或遞交URL,進(jìn)行下一步的漏洞偵測。如動(dòng)態(tài)查詢(xún)URL“;pic=1”,其中frameset為URL中動(dòng)態(tài)的參數部份,可以進(jìn)行參數變換。提交URL用于把Web用戶(hù)的輸入遞交到服務(wù)器進(jìn)行處理,其參數多為用戶(hù)輸入,同樣可以進(jìn)行參數變換。
  3)漏洞試探:根據動(dòng)態(tài)查詢(xún)URL或遞交URL,自動(dòng)在參數部份進(jìn)行參數變換,插入冒號、分號(SQL注入對其敏感)及script標簽(XSS對其敏感)等操作進(jìn)行試探,并按照Web服務(wù)器返回的結果手動(dòng)判定是否存在漏洞。如“URL匹配”中的動(dòng)態(tài)查詢(xún)URL可以變換成;script>alert(1) </script>&pic=1進(jìn)行跨站腳本漏洞偵測。
  /cn/res/201204/18/20120418_1338726_image001_741991_30008_0.png
  圖 基于網(wǎng)路爬蟲(chóng)技術(shù)的WEB漏洞掃描原理圖
  如何應對爬蟲(chóng)的安全恐嚇
  由于網(wǎng)路爬蟲(chóng)帶來(lái)的安全恐嚇,不少網(wǎng)站的管理人員都在考慮對爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制甚至拒絕爬蟲(chóng)訪(fǎng)問(wèn)。實(shí)際上,根據網(wǎng)站內容的安全性及敏感性,區別對待爬蟲(chóng)是比較理想的舉措。網(wǎng)站的URL組織應當按照是否為適宜大范圍公開(kāi),設置不同的URL路徑,在同一Web頁(yè)面中既有須要完全公開(kāi)信息也有敏感信息時(shí),應通過(guò)鏈接、<frame>標簽嵌入網(wǎng)頁(yè)等方法顯示敏感內容,另外盡可能把靜態(tài)頁(yè)面等經(jīng)評估安全性較高的頁(yè)面與安全性較差的動(dòng)態(tài)頁(yè)面從URL上分開(kāi)。當限制爬蟲(chóng)時(shí)可以針對URL路徑的安全性與敏感性對不同種類(lèi)的爬蟲(chóng)與代理進(jìn)行限制。
  限制爬蟲(chóng)可以通過(guò)以下幾種方式實(shí)現:
  1) 設置robots.txt文件
  限制爬蟲(chóng)最簡(jiǎn)單的方式是設置robots.txt文件。robots.txt文件是搜索引擎爬蟲(chóng)訪(fǎng)問(wèn)網(wǎng)站的時(shí)侯要查看的第一個(gè)文件,它告訴爬蟲(chóng)程序在服務(wù)器上哪些文件是可以被查看的,如設置Disallow: /,則表示所有的路徑均不能查看。遺憾的是并不是所有的搜索引擎爬蟲(chóng)會(huì )遵循這個(gè)規則,因此僅僅設置robots文件是不夠的。
  2) User Agent辨識與限制
  要對不理會(huì )robots.txt文件的爬蟲(chóng)訪(fǎng)問(wèn)進(jìn)行限制,首先要把爬蟲(chóng)流量與普通用戶(hù)的訪(fǎng)問(wèn)流量進(jìn)行分辨,即對其進(jìn)行辨識。一般的爬蟲(chóng)程序都可以通過(guò)其HTTP請求中的User Agent數組進(jìn)行辨識,該數組讓服務(wù)器才能辨識顧客使用的操作系統及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。爬蟲(chóng)的User Agent數組通常與瀏覽器的有所不同,如Google搜索引擎爬蟲(chóng)User Agent數組中會(huì )有類(lèi)似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( ),百度搜索引擎爬蟲(chóng)則會(huì )有類(lèi)似Baiduspider的字符串。不少Web服務(wù)器軟件如Apache,可以設置通過(guò)User Agent數組進(jìn)行訪(fǎng)問(wèn)過(guò)濾,可以比較有效的限制大部分爬蟲(chóng)的訪(fǎng)問(wèn)。
  3) 通過(guò)訪(fǎng)問(wèn)行為特點(diǎn)辨識與限制
  對于在HTTP請求的User Agent數組刻意偽裝成瀏覽器的爬蟲(chóng),可以通過(guò)其訪(fǎng)問(wèn)行為特點(diǎn)進(jìn)行辨識。爬蟲(chóng)程序的訪(fǎng)問(wèn)通常是有規律性的頻度比較高,區別于真實(shí)用戶(hù)瀏覽時(shí)的隨意性與低頻度。對這類(lèi)爬蟲(chóng)的限制原理與DDoS攻擊的防御原理太相像,都基于統計數據。對于這類(lèi)爬蟲(chóng)的限制只能通過(guò)應用辨識設備、IPS等才能做深度辨識的網(wǎng)路設備來(lái)實(shí)現。用網(wǎng)路設備限制網(wǎng)路爬蟲(chóng),不僅比較全面,而且十分適宜在多服務(wù)器情況下進(jìn)行統一的管理,避免多服務(wù)器單獨管理有可能導致的疏失。
  結束語(yǔ)
  網(wǎng)絡(luò )爬蟲(chóng)及其對應的技術(shù)為網(wǎng)站帶來(lái)了可觀(guān)訪(fǎng)問(wèn)量的同時(shí),也帶來(lái)了直接與間接的安全恐嚇,越來(lái)越多的網(wǎng)站開(kāi)始關(guān)注對網(wǎng)路爬蟲(chóng)的限制問(wèn)題。隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,基于網(wǎng)路爬蟲(chóng)與搜索引擎技術(shù)的互聯(lián)網(wǎng)應用將會(huì )越來(lái)越多,網(wǎng)站管理員及安全人員,有必要了解爬蟲(chóng)的原理及限制方式,準備好應對各種各樣的網(wǎng)路爬蟲(chóng)。

什么是網(wǎng)絡(luò )爬蟲(chóng)?網(wǎng)絡(luò )爬蟲(chóng)有哪些用?

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 303 次瀏覽 ? 2020-06-01 08:01 ? 來(lái)自相關(guān)話(huà)題

  在大數據浪潮中,最值錢(qián)的就是數據,企業(yè)為了獲得數據,處理數據,理解數據耗費了巨大代價(jià),使用網(wǎng)絡(luò )爬蟲(chóng)可以最有效的獲取數據。
  什么是爬蟲(chóng)?
  網(wǎng)絡(luò )蜘蛛(Web spider)也叫網(wǎng)絡(luò )爬蟲(chóng)(Web crawler)什么是網(wǎng)絡(luò )爬蟲(chóng),螞蟻(ant),自動(dòng)檢索工具(automatic indexer),或者(在FOAF軟件概念中)網(wǎng)絡(luò )疾走(WEB scutter),是一種“自動(dòng)化瀏覽網(wǎng)路”的程序,或者說(shuō)是一種網(wǎng)路機器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類(lèi)似網(wǎng)站,以獲取或更新那些網(wǎng)站的內容和檢索方法。它們可以手動(dòng)采集所有其才能訪(fǎng)問(wèn)到的頁(yè)面內容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁(yè)面),而促使用戶(hù)能更快的檢索到她們須要的信息。
  最常見(jiàn)的就是互聯(lián)網(wǎng)搜索引擎,它們借助網(wǎng)路爬蟲(chóng)手動(dòng)采集所有才能訪(fǎng)問(wèn)到的頁(yè)面內容,以獲取或更新那些網(wǎng)站的內容和檢索方法。在網(wǎng)路爬蟲(chóng)的系統框架中,主過(guò)程由控制器、解析器、資源庫三部份組成??刂破鞯闹饕ぷ魇秦撠熃o多線(xiàn)程中的各個(gè)爬蟲(chóng)線(xiàn)程分配工作任務(wù)。解析器的主要工作是
  下載信息,將信息中對用戶(hù)沒(méi)有意義的內容(比如網(wǎng)頁(yè)代碼)處理掉。資源庫是拿來(lái)儲存下載到的數據資源,并對其構建索引。
  假如你想要每小時(shí)抓取一次網(wǎng)易新聞,那么你就要訪(fǎng)問(wèn)網(wǎng)易并做一個(gè)數據懇求,得到html格式的網(wǎng)頁(yè),然后通過(guò)網(wǎng)路爬蟲(chóng)的解析器進(jìn)行過(guò)濾,最后保存入庫。
  爬蟲(chóng)能做哪些?
  可以創(chuàng )建搜索引擎(Google,百度)
  可以拿來(lái)?yè)尰疖?chē)票
  帶逛
  簡(jiǎn)單來(lái)講只要瀏覽器能打開(kāi)的,都可以用爬蟲(chóng)實(shí)現
  網(wǎng)絡(luò )爬蟲(chóng)的分類(lèi)?
  網(wǎng)絡(luò )爬蟲(chóng)可以分為通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)和深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL(網(wǎng)絡(luò )上每一個(gè)文件都有一個(gè)地址,即URL) 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是只爬行與主題相關(guān)網(wǎng)路資源的爬蟲(chóng)。它極大地節約了硬件和網(wǎng)路資源,保存的數據也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求。
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是指只爬行新形成的或則已然發(fā)生變化數據的爬蟲(chóng),它還能在一定程度上保證所爬行的數據是盡可能新的,并不重新下載沒(méi)有發(fā)生變化的數據,可有效降低數據下載量,及時(shí)更新已爬行的數據,減小時(shí)間和空間上的花費。
  深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)則可以抓取到深層網(wǎng)頁(yè)的數據。一般網(wǎng)路頁(yè)面分為表層網(wǎng)頁(yè)和深層網(wǎng)頁(yè)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面什么是網(wǎng)絡(luò )爬蟲(chóng),而深層頁(yè)面是只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的頁(yè)面,例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于深層網(wǎng)頁(yè)。
  學(xué)習爬蟲(chóng)技術(shù)勢在必行:在現今競爭的信息化社會(huì )中,如何借助數據剖析使自己站在信息不對稱(chēng)的一方,保持競爭優(yōu)勢,是數字工作者的必備技能。不過(guò)想飛之前總得先學(xué)會(huì )慢跑,分析數據之前先首要學(xué)會(huì )爬數據與處理數據,才有有事半功倍之效。
  【全文完】 查看全部

  在大數據浪潮中,最值錢(qián)的就是數據,企業(yè)為了獲得數據,處理數據,理解數據耗費了巨大代價(jià),使用網(wǎng)絡(luò )爬蟲(chóng)可以最有效的獲取數據。
  什么是爬蟲(chóng)?
  網(wǎng)絡(luò )蜘蛛(Web spider)也叫網(wǎng)絡(luò )爬蟲(chóng)(Web crawler)什么是網(wǎng)絡(luò )爬蟲(chóng),螞蟻(ant),自動(dòng)檢索工具(automatic indexer),或者(在FOAF軟件概念中)網(wǎng)絡(luò )疾走(WEB scutter),是一種“自動(dòng)化瀏覽網(wǎng)路”的程序,或者說(shuō)是一種網(wǎng)路機器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類(lèi)似網(wǎng)站,以獲取或更新那些網(wǎng)站的內容和檢索方法。它們可以手動(dòng)采集所有其才能訪(fǎng)問(wèn)到的頁(yè)面內容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁(yè)面),而促使用戶(hù)能更快的檢索到她們須要的信息。
  最常見(jiàn)的就是互聯(lián)網(wǎng)搜索引擎,它們借助網(wǎng)路爬蟲(chóng)手動(dòng)采集所有才能訪(fǎng)問(wèn)到的頁(yè)面內容,以獲取或更新那些網(wǎng)站的內容和檢索方法。在網(wǎng)路爬蟲(chóng)的系統框架中,主過(guò)程由控制器、解析器、資源庫三部份組成??刂破鞯闹饕ぷ魇秦撠熃o多線(xiàn)程中的各個(gè)爬蟲(chóng)線(xiàn)程分配工作任務(wù)。解析器的主要工作是
  下載信息,將信息中對用戶(hù)沒(méi)有意義的內容(比如網(wǎng)頁(yè)代碼)處理掉。資源庫是拿來(lái)儲存下載到的數據資源,并對其構建索引。
  假如你想要每小時(shí)抓取一次網(wǎng)易新聞,那么你就要訪(fǎng)問(wèn)網(wǎng)易并做一個(gè)數據懇求,得到html格式的網(wǎng)頁(yè),然后通過(guò)網(wǎng)路爬蟲(chóng)的解析器進(jìn)行過(guò)濾,最后保存入庫。
  爬蟲(chóng)能做哪些?
  可以創(chuàng )建搜索引擎(Google,百度)
  可以拿來(lái)?yè)尰疖?chē)票
  帶逛
  簡(jiǎn)單來(lái)講只要瀏覽器能打開(kāi)的,都可以用爬蟲(chóng)實(shí)現
  網(wǎng)絡(luò )爬蟲(chóng)的分類(lèi)?
  網(wǎng)絡(luò )爬蟲(chóng)可以分為通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)和深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL(網(wǎng)絡(luò )上每一個(gè)文件都有一個(gè)地址,即URL) 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是只爬行與主題相關(guān)網(wǎng)路資源的爬蟲(chóng)。它極大地節約了硬件和網(wǎng)路資源,保存的數據也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求。
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是指只爬行新形成的或則已然發(fā)生變化數據的爬蟲(chóng),它還能在一定程度上保證所爬行的數據是盡可能新的,并不重新下載沒(méi)有發(fā)生變化的數據,可有效降低數據下載量,及時(shí)更新已爬行的數據,減小時(shí)間和空間上的花費。
  深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)則可以抓取到深層網(wǎng)頁(yè)的數據。一般網(wǎng)路頁(yè)面分為表層網(wǎng)頁(yè)和深層網(wǎng)頁(yè)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面什么是網(wǎng)絡(luò )爬蟲(chóng),而深層頁(yè)面是只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的頁(yè)面,例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于深層網(wǎng)頁(yè)。
  學(xué)習爬蟲(chóng)技術(shù)勢在必行:在現今競爭的信息化社會(huì )中,如何借助數據剖析使自己站在信息不對稱(chēng)的一方,保持競爭優(yōu)勢,是數字工作者的必備技能。不過(guò)想飛之前總得先學(xué)會(huì )慢跑,分析數據之前先首要學(xué)會(huì )爬數據與處理數據,才有有事半功倍之效。
  【全文完】

基于C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 291 次瀏覽 ? 2020-05-28 08:01 ? 來(lái)自相關(guān)話(huà)題

  基于 C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現的研究綜述作者:xxx 指導老師:xxx摘要:本文歸納了網(wǎng)路爬蟲(chóng)的設計與實(shí)現方面的研究?jì)热?,概括了網(wǎng)路爬蟲(chóng)的定 摘要 義與爬取策略、網(wǎng)絡(luò )爬蟲(chóng)的體系結構、設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)身分的 識別等方面的觀(guān)點(diǎn),并總結了怎樣通過(guò)一個(gè)或多個(gè)給定的種子網(wǎng)站,將網(wǎng)站上相 應的網(wǎng)頁(yè)抓取出來(lái),并將其存入數據庫或文本文件中的研究成果。本文也強調了 如何通過(guò)解決傳統的通用搜索引擎在個(gè)別領(lǐng)域的局限性, 幫助人們愈加有效地提 取與借助互聯(lián)網(wǎng)信息,進(jìn)而提升人們在檢索信息效率方面的研究需求。最后,本 文提出了一個(gè)滿(mǎn)足用戶(hù)需求的網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)方案。 關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng) ;通用搜索引擎 ;互聯(lián)網(wǎng) 關(guān)鍵詞The Design and Implementation of Web Spider Based on C++Author:xxxTutor: xxx Abstract:This paper summarizes the research about the design and implementation of the web spider, summarizesthe view aboutthe definition of web spider, the crawling strategy of the web spider, the architecture of the web spider, the key issues to design the web spider and identification of the web spider ,and summarizes the research about how to catch the web-pages which links to the corresponding web site through one or more given seed site, and then stores it into a database or text file . The paper also points out how to solve the limitations of the Traditional General Search Engine in some areas , help people more effectively extract the information and make use of the Internet, then improve people’sresearch needs in the area of information retrieval. In the end, the paper proposesa web spider development planwhich can meet the user’s needs. Keywords:WebSpiders ;Tradition Universal Search Engine ; Internet隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息的提取與借助在人們的日常生活中越來(lái)越重要。
  搜索 引擎因為才能從廣袤的網(wǎng)路資源中給用戶(hù)提供對用戶(hù)有用的信息而獲得長(cháng)足的 發(fā)展,自誕生以來(lái),搜索引擎獲得了越來(lái)越多用戶(hù)的追捧,成為人們日常生活中 檢索信息必不可少的搜索工具。 研究背景 隨著(zhù)經(jīng)濟社會(huì )的發(fā)展,人們對信息搜索提出了更高的要求。傳統搜索引擎c++網(wǎng)絡(luò )爬蟲(chóng), 例如傳統的通用搜索引擎 AltaVista,Yahoo!和 Google 大都是基于關(guān)鍵字的檢 索,對按照語(yǔ)義信息提出的查詢(xún)卻無(wú)能為力,搜索結果往往包含大量用戶(hù)并不關(guān) 心的網(wǎng)頁(yè);隨著(zhù)萬(wàn)維網(wǎng)的數據方式的不斷豐富與網(wǎng)路技術(shù)的不斷發(fā)展,圖片、數 據庫、音頻及視頻多媒體等不同數據方式大量出現,傳統搜索引擎對這種信息含 量密集且具有一定數據結構的數據不能挺好的獲取和發(fā)覺(jué)。另外,傳統搜索引擎 有限的搜索引擎服務(wù)器資源與無(wú)限的網(wǎng)路數據資源之間的矛盾也日漸突出。 為了解決這種問(wèn)題,人們設計實(shí)現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站,定向抓 取相關(guān)網(wǎng)頁(yè)資源的網(wǎng)路爬蟲(chóng)。網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)下載網(wǎng)頁(yè)的程序,它按照既定 的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息。 它并不追求大的覆蓋率,而將目標定為抓取與某一特定主題內容相關(guān)的網(wǎng)頁(yè),為 面向主題的用戶(hù)查詢(xún)打算數據資源。
   1.網(wǎng)絡(luò )爬蟲(chóng)的定義及爬行策略 一個(gè)網(wǎng)路蜘蛛就是一種機器人,或者軟件代理。大體上,它從一組要訪(fǎng)問(wèn)的 URL 鏈接開(kāi)始,可以稱(chēng)這種 URL 為種子。爬蟲(chóng)訪(fǎng)問(wèn)那些鏈接,它分辨出這種頁(yè)面 的所有超鏈接,然后添加到這個(gè) URL 列表,可以比作檢索前沿。這些 URL 按照一 定的策略反復訪(fǎng)問(wèn),直到滿(mǎn)足一定的條件結束。其工作流程如下:圖 1 網(wǎng)絡(luò )爬蟲(chóng)的工作流程網(wǎng)頁(yè)爬蟲(chóng)的行為一般是四種策略組合的結果。這四種策略分別是選擇策略、 重新訪(fǎng)問(wèn)策略、平衡禮貌策略、并行策略。其中,選擇策略,用來(lái)決定所要下載 的頁(yè)面; 重新訪(fǎng)問(wèn)策略, 用來(lái)決定什么時(shí)候檢測頁(yè)面的更新變化; 平衡禮貌策略, 指出如何防止站點(diǎn)超員;并行策略,指出如何協(xié)同達到分布式抓取的療效。 2.網(wǎng)絡(luò )爬蟲(chóng)體系結構 網(wǎng)絡(luò )爬蟲(chóng)的結構主要分為以下幾個(gè)部份: (1)下載模塊,(2)網(wǎng)頁(yè)剖析模塊, (3) URL去重模塊,(4) URL分配模塊, 如圖2所示:圖2系統構架圖2.1下載模塊 下載模塊負責抓取網(wǎng)頁(yè), 是整個(gè)系統的基本與關(guān)鍵部份,直接影響爬行療效。 該模塊通常包含3 個(gè)子模塊: (1) 下載線(xiàn)程; (2) Host控制子模塊; (3) DNS 解 析子模塊。
   2.2網(wǎng)頁(yè)剖析模塊 網(wǎng)頁(yè)剖析主要是內容剖析和鏈接抽取。 網(wǎng)頁(yè)中有很多不同的編碼格式, 這些 格式來(lái)自不同的文本( 簡(jiǎn)體中文、繁體英文、英文等) 。這些不同的文本信息會(huì ) 影響到后續的正文抽取和副詞等模塊。網(wǎng)頁(yè)剖析中須要考慮到這類(lèi)問(wèn)題。 HTML,XML網(wǎng)頁(yè)不僅標題和正文以外, 會(huì )有許多版權信息、 廣告鏈接以及公共 的頻道鏈接, 這些鏈接和文本通常沒(méi)有很大的價(jià)值, 在提取網(wǎng)頁(yè)內容的時(shí)侯,需 要過(guò)濾這種無(wú)用的鏈接。對于DOC, PPT, XLS, PDF 等帶格式的文件, 網(wǎng)絡(luò )爬蟲(chóng) 都要提取出文件里的純文本內容。對于多媒體、圖片等文件, 一般是通過(guò)鏈接的 錨文本( 即鏈接文本) 和相關(guān)的文件注釋來(lái)判定那些文件的內容。 2.3 URL去重模塊 在下載的過(guò)程中, 不可防止地會(huì )碰到重復的鏈接, 如何去除那些重復的鏈 接, 是個(gè)很復雜的議程。URL的去重可以說(shuō)是爬蟲(chóng)系統中最重要的一部分, 直接 影響爬行效率和療效。 目前主流網(wǎng)路爬蟲(chóng)的URL 去重機制主要有兩種方法: (1) 完全顯存形式; (2) 基于c盤(pán)的緩存方法。完全顯存形式就是指估算URL 的Hash 值, 一般用4 至6個(gè)字節表示, 這樣10 億個(gè)網(wǎng)頁(yè)的URL 就須要5 到8個(gè)G的顯存。
   另一種方法是開(kāi)一個(gè)大鏈表進(jìn)行按位驗證, 這樣只需后者八分之一的顯存, 但有可能錯判, 且誤判率隨著(zhù)爬行規模的減小而提升。 基于c盤(pán)的緩存方法則是將大部分數據放 在c盤(pán)上, 內存里儲存一個(gè)緩存, 然后按照策略更新緩存。 由于c盤(pán)的速率比內 存慢一個(gè)數量級, 一旦所查URL不命中緩存, 就必須在c盤(pán)中進(jìn)行查找, 從而大 大影響效率。 2.4 URL分配模塊 抓取的效率主要依賴(lài)于硬件資源、網(wǎng)絡(luò )的帶寬以及程序執行效率等。普通單 處理機系統受限于CPU 的處理能力、 磁盤(pán)存儲的容量, 不可能具備處理海量信息 的能力, 這就要求Crawler 支持分布式協(xié)同工作。 URL 分配模塊主要考慮兩個(gè)問(wèn)題: (1) 在節點(diǎn)間界定URL的策略, 即怎樣分 配下載任務(wù);(2) 優(yōu)化性能, 比如負載均衡、協(xié)同工作的開(kāi)支等。 3.設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題 3.1 可伸縮性 面對網(wǎng)路上數以萬(wàn)億計的網(wǎng)頁(yè), 使用有限的資源運轉一個(gè)高性能、 可伸縮的 Crawler 是一個(gè)首要任務(wù)。完成這項任務(wù)一般有3 點(diǎn)要求。首先, 采用的算法和 數據結構要才能支持Crawler 處理海量的網(wǎng)頁(yè)。 其次, 在有限資源下, 爬行的平 均速率必須維持一個(gè)較高的水平。
   第三, 在添加硬件的情況下, 性能才能得到線(xiàn) 性下降。 在效率方面, 由于網(wǎng)絡(luò )爬蟲(chóng)可以看成是一個(gè)生產(chǎn)者消費者模型, 如何讓 各個(gè)模塊協(xié)調工作, 以達到最佳性能, 也是一個(gè)嚴重的挑戰。 3.2 提高下載質(zhì)量 網(wǎng)絡(luò )爬蟲(chóng)的目標是抓取互聯(lián)網(wǎng)上所有有價(jià)值的網(wǎng)頁(yè)。 哪些網(wǎng)頁(yè)有價(jià)值, 如何 抓取這種網(wǎng)頁(yè), 這些問(wèn)題須要對網(wǎng)頁(yè)的質(zhì)量有一個(gè)較為全面的評價(jià)。 而評價(jià)標準 主要依賴(lài)對互聯(lián)網(wǎng)和用戶(hù)需求的理解。其中, 主要包括以下幾個(gè)方面的問(wèn)題: ①網(wǎng)頁(yè)之間的鏈接關(guān)系。 ②URL 本身的質(zhì)量。 ③網(wǎng)頁(yè)重復情況。 ④網(wǎng)頁(yè)內容的評價(jià)。 3.3 網(wǎng)頁(yè)更新 目前網(wǎng)頁(yè)更新的方法有兩種: 一種是周期性進(jìn)行更新。 Crawler 第一次爬行 到設定好的規模后, 停止爬行, 然后每隔一段( 固定的) 時(shí)間對本地的索引數 據庫網(wǎng)頁(yè)進(jìn)行一次全面的信息更新維護, 即替換掉陳舊的信息, 加入新生成的 網(wǎng)頁(yè)。更新周期通常以禮拜或月為計量單位。我們稱(chēng)這些為周期性Crawler。另 一種是增量式信息更新方式。 因為互聯(lián)網(wǎng)中包含的大量網(wǎng)頁(yè)的更新周期是不一致 的, 有的變化無(wú)常, 有的非常穩定。 因此應當以網(wǎng)頁(yè)的變化周期作為進(jìn)行有效性 驗證的根據。
   在每一次網(wǎng)頁(yè)的更新過(guò)程中, 只對這些最有可能發(fā)生變化的網(wǎng)頁(yè)進(jìn) 行更新, 以不同的頻度更新不同的網(wǎng)頁(yè)。Crawler會(huì )仍然不停地爬行, 更新陳舊 的網(wǎng)頁(yè), 并用新的更重要的網(wǎng)頁(yè)替換掉次重要的網(wǎng)頁(yè)。 我們稱(chēng)采用這些方法的爬蟲(chóng)為增量式Crawler。 從理論上來(lái)講, 增量式Crawler比周期性Crawler 效率更高。 但怎么確定每位網(wǎng)頁(yè)的更新頻度, 是一個(gè)難點(diǎn)。 4.爬蟲(chóng)身分辨識 網(wǎng)絡(luò )爬蟲(chóng)通過(guò)使用 http 請求的用戶(hù)代理數組來(lái)向網(wǎng)路服務(wù)器表明她們的 身份。網(wǎng)絡(luò )管理員則通過(guò)檢測網(wǎng)路服務(wù)器的日志,使用用戶(hù)代理數組來(lái)辨別哪一 個(gè)爬蟲(chóng)以前訪(fǎng)問(wèn)過(guò)以及它訪(fǎng)問(wèn)的頻度。 用戶(hù)代理數組可能會(huì )包含一個(gè)可以使管理 員獲取爬蟲(chóng)更多信息的 URL。郵件抓取器和其他懷有惡意的網(wǎng)路爬蟲(chóng)一般不會(huì )留 任何的用戶(hù)代理數組內容, 或者她們也會(huì )將她們的身分偽裝成瀏覽器或則其他的 知名爬蟲(chóng)。 5.開(kāi)發(fā)工具介紹 5.1 Windows .NET Framework 2.0 開(kāi)發(fā)平臺 NET Framework 是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件。NET Framework 主要包含一個(gè)特別大的代碼庫,可以在顧客語(yǔ)言 ( 如 C++) 中 通 過(guò) 面 向 對 象 編 程 技 術(shù) (OOP) 來(lái) 使 用 這 些 代 碼 。
   這 個(gè) 部 分 .NET Framework 庫定義了一些基本類(lèi)型。庫分為不同的模塊,這樣就可以按照希望得 到的結果來(lái)選擇使用其中的各個(gè)部份。 5.2 開(kāi)發(fā)工具 C++ C++是由 C 子語(yǔ)言、 面向對象的 C++、 泛型編程語(yǔ)言和 STL (C++標準模板庫, Standard Template Library)組成的程序設計語(yǔ)言。C++支持 C 語(yǔ)言的幾乎全部 功能,在句型上與 C 語(yǔ)言?xún)H有極微妙的差異。C++強大(但容易失控的)模板功 能使它能在編譯期完成許多工作,從而大大提升運行期效率。隨著(zhù) STL 的不斷發(fā) 展,它早已漸漸成為 C++程序設計中不可或缺的部份,其效率可能比通常的 native 代碼低些,但是其安全性與規范性讓它大受歡迎。 5.3 后臺數據庫 ACCESS 數據庫 Microsoft Office Access(前名 Microsoft Access)是由谷歌發(fā)布的關(guān)聯(lián) 式數據庫管理系統。它結合了 Microsoft Jet Database Engine 和 圖形用戶(hù)界 面兩項特征,是 Microsoft Office 的成員之一。它簡(jiǎn)單易用,可以勝任小批量 的查詢(xún)工作。
   三、總結 本文分別從目前搜索引擎的發(fā)展現況、網(wǎng)絡(luò )爬蟲(chóng)的定義、爬行策略、爬蟲(chóng)的體系 結構、 設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)的身分辨識等方面介紹了怎樣設計一個(gè) 網(wǎng)絡(luò )爬蟲(chóng),另外本文也從開(kāi)發(fā)所需的操作系統、開(kāi)發(fā)工具以及所涉及到的數據庫 技術(shù)等方面簡(jiǎn)單介紹了怎樣實(shí)現一個(gè)網(wǎng)絡(luò )爬蟲(chóng), 并最終確立了使用 Windows .NET Framework 2.0 開(kāi)發(fā)平臺、C++與 ACCESS 的開(kāi)發(fā)方案。本文的最終目標是設計實(shí) 現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站, 定向抓取相關(guān)網(wǎng)頁(yè)資源并將其內容存入數 據庫或文本文件中的網(wǎng)路爬蟲(chóng)。參考文獻:[1] 劉金紅,陸余良.主題網(wǎng)路爬蟲(chóng)研究綜述[J].計算機應用研究,2007,(10):70-79. [2] 羅剛,王振東. 自己動(dòng)手寫(xiě)網(wǎng)路爬蟲(chóng)[M].清華大學(xué)出版社,2010c++網(wǎng)絡(luò )爬蟲(chóng),(10). [3] 大連海事大學(xué)計算機科學(xué)與技術(shù)學(xué)院.主題搜索引擎中網(wǎng)路爬蟲(chóng)的搜索策略研究[J].計算 機工程與科學(xué),2008,(03):44-46. [4] 羅剛.自己動(dòng)手寫(xiě)搜索引擎[M].電子工業(yè)出版社,2009,(11). [5] 鄭志高,劉慶圣,陳立彬.基于主題網(wǎng)路爬蟲(chóng)的網(wǎng)路學(xué)習資源搜集平臺的設計[J].中國教 育信息化,2010,(01):55-67. [6] 汪濤,樊孝忠.主題爬蟲(chóng)的設計與實(shí)現[J].計算機應用,2004,(S1):110-121. [7] 汪濤,樊孝忠.鏈接分析對主題爬蟲(chóng)的改進(jìn)[J].計算機應用,2004,(S2):55-70. [8] 尹江, 尹治本, 黃洪.網(wǎng)絡(luò )爬蟲(chóng)效率困局的剖析與解決方案[J].計算機應用, 2008, (5):20-31. [9] 汪濤, 樊孝忠, 顧益軍, 劉林.基于概念剖析的主題爬蟲(chóng)設計[J].北京理工大學(xué)學(xué)報, 2004, (10):33-41. [10] 李蕾,王楠,張劍,鐘義信,郭祥昊,賈自燕.中文搜索引擎概念檢索初探[J]. 計算機 工程與應用,2000,(06):66-75. [11] 潘春華,馮太明,武港山.基于聯(lián)通爬蟲(chóng)的專(zhuān)用 Web 信息搜集系統的設計[J].計算機工程 與應用,2003,(36):99-109. [12] 赫楓齡, 左萬(wàn)利.利用超鏈接信息改進(jìn)網(wǎng)頁(yè)爬行器的搜索策略[J].吉林大學(xué)學(xué)報(信息科學(xué) 版),2005,(01):100-108. 查看全部

  基于 C++的網(wǎng)路爬蟲(chóng)的設計與實(shí)現的研究綜述作者:xxx 指導老師:xxx摘要:本文歸納了網(wǎng)路爬蟲(chóng)的設計與實(shí)現方面的研究?jì)热?,概括了網(wǎng)路爬蟲(chóng)的定 摘要 義與爬取策略、網(wǎng)絡(luò )爬蟲(chóng)的體系結構、設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)身分的 識別等方面的觀(guān)點(diǎn),并總結了怎樣通過(guò)一個(gè)或多個(gè)給定的種子網(wǎng)站,將網(wǎng)站上相 應的網(wǎng)頁(yè)抓取出來(lái),并將其存入數據庫或文本文件中的研究成果。本文也強調了 如何通過(guò)解決傳統的通用搜索引擎在個(gè)別領(lǐng)域的局限性, 幫助人們愈加有效地提 取與借助互聯(lián)網(wǎng)信息,進(jìn)而提升人們在檢索信息效率方面的研究需求。最后,本 文提出了一個(gè)滿(mǎn)足用戶(hù)需求的網(wǎng)路爬蟲(chóng)的開(kāi)發(fā)方案。 關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng) ;通用搜索引擎 ;互聯(lián)網(wǎng) 關(guān)鍵詞The Design and Implementation of Web Spider Based on C++Author:xxxTutor: xxx Abstract:This paper summarizes the research about the design and implementation of the web spider, summarizesthe view aboutthe definition of web spider, the crawling strategy of the web spider, the architecture of the web spider, the key issues to design the web spider and identification of the web spider ,and summarizes the research about how to catch the web-pages which links to the corresponding web site through one or more given seed site, and then stores it into a database or text file . The paper also points out how to solve the limitations of the Traditional General Search Engine in some areas , help people more effectively extract the information and make use of the Internet, then improve people’sresearch needs in the area of information retrieval. In the end, the paper proposesa web spider development planwhich can meet the user’s needs. Keywords:WebSpiders ;Tradition Universal Search Engine ; Internet隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息的提取與借助在人們的日常生活中越來(lái)越重要。
  搜索 引擎因為才能從廣袤的網(wǎng)路資源中給用戶(hù)提供對用戶(hù)有用的信息而獲得長(cháng)足的 發(fā)展,自誕生以來(lái),搜索引擎獲得了越來(lái)越多用戶(hù)的追捧,成為人們日常生活中 檢索信息必不可少的搜索工具。 研究背景 隨著(zhù)經(jīng)濟社會(huì )的發(fā)展,人們對信息搜索提出了更高的要求。傳統搜索引擎c++網(wǎng)絡(luò )爬蟲(chóng), 例如傳統的通用搜索引擎 AltaVista,Yahoo!和 Google 大都是基于關(guān)鍵字的檢 索,對按照語(yǔ)義信息提出的查詢(xún)卻無(wú)能為力,搜索結果往往包含大量用戶(hù)并不關(guān) 心的網(wǎng)頁(yè);隨著(zhù)萬(wàn)維網(wǎng)的數據方式的不斷豐富與網(wǎng)路技術(shù)的不斷發(fā)展,圖片、數 據庫、音頻及視頻多媒體等不同數據方式大量出現,傳統搜索引擎對這種信息含 量密集且具有一定數據結構的數據不能挺好的獲取和發(fā)覺(jué)。另外,傳統搜索引擎 有限的搜索引擎服務(wù)器資源與無(wú)限的網(wǎng)路數據資源之間的矛盾也日漸突出。 為了解決這種問(wèn)題,人們設計實(shí)現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站,定向抓 取相關(guān)網(wǎng)頁(yè)資源的網(wǎng)路爬蟲(chóng)。網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)下載網(wǎng)頁(yè)的程序,它按照既定 的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息。 它并不追求大的覆蓋率,而將目標定為抓取與某一特定主題內容相關(guān)的網(wǎng)頁(yè),為 面向主題的用戶(hù)查詢(xún)打算數據資源。
   1.網(wǎng)絡(luò )爬蟲(chóng)的定義及爬行策略 一個(gè)網(wǎng)路蜘蛛就是一種機器人,或者軟件代理。大體上,它從一組要訪(fǎng)問(wèn)的 URL 鏈接開(kāi)始,可以稱(chēng)這種 URL 為種子。爬蟲(chóng)訪(fǎng)問(wèn)那些鏈接,它分辨出這種頁(yè)面 的所有超鏈接,然后添加到這個(gè) URL 列表,可以比作檢索前沿。這些 URL 按照一 定的策略反復訪(fǎng)問(wèn),直到滿(mǎn)足一定的條件結束。其工作流程如下:圖 1 網(wǎng)絡(luò )爬蟲(chóng)的工作流程網(wǎng)頁(yè)爬蟲(chóng)的行為一般是四種策略組合的結果。這四種策略分別是選擇策略、 重新訪(fǎng)問(wèn)策略、平衡禮貌策略、并行策略。其中,選擇策略,用來(lái)決定所要下載 的頁(yè)面; 重新訪(fǎng)問(wèn)策略, 用來(lái)決定什么時(shí)候檢測頁(yè)面的更新變化; 平衡禮貌策略, 指出如何防止站點(diǎn)超員;并行策略,指出如何協(xié)同達到分布式抓取的療效。 2.網(wǎng)絡(luò )爬蟲(chóng)體系結構 網(wǎng)絡(luò )爬蟲(chóng)的結構主要分為以下幾個(gè)部份: (1)下載模塊,(2)網(wǎng)頁(yè)剖析模塊, (3) URL去重模塊,(4) URL分配模塊, 如圖2所示:圖2系統構架圖2.1下載模塊 下載模塊負責抓取網(wǎng)頁(yè), 是整個(gè)系統的基本與關(guān)鍵部份,直接影響爬行療效。 該模塊通常包含3 個(gè)子模塊: (1) 下載線(xiàn)程; (2) Host控制子模塊; (3) DNS 解 析子模塊。
   2.2網(wǎng)頁(yè)剖析模塊 網(wǎng)頁(yè)剖析主要是內容剖析和鏈接抽取。 網(wǎng)頁(yè)中有很多不同的編碼格式, 這些 格式來(lái)自不同的文本( 簡(jiǎn)體中文、繁體英文、英文等) 。這些不同的文本信息會(huì ) 影響到后續的正文抽取和副詞等模塊。網(wǎng)頁(yè)剖析中須要考慮到這類(lèi)問(wèn)題。 HTML,XML網(wǎng)頁(yè)不僅標題和正文以外, 會(huì )有許多版權信息、 廣告鏈接以及公共 的頻道鏈接, 這些鏈接和文本通常沒(méi)有很大的價(jià)值, 在提取網(wǎng)頁(yè)內容的時(shí)侯,需 要過(guò)濾這種無(wú)用的鏈接。對于DOC, PPT, XLS, PDF 等帶格式的文件, 網(wǎng)絡(luò )爬蟲(chóng) 都要提取出文件里的純文本內容。對于多媒體、圖片等文件, 一般是通過(guò)鏈接的 錨文本( 即鏈接文本) 和相關(guān)的文件注釋來(lái)判定那些文件的內容。 2.3 URL去重模塊 在下載的過(guò)程中, 不可防止地會(huì )碰到重復的鏈接, 如何去除那些重復的鏈 接, 是個(gè)很復雜的議程。URL的去重可以說(shuō)是爬蟲(chóng)系統中最重要的一部分, 直接 影響爬行效率和療效。 目前主流網(wǎng)路爬蟲(chóng)的URL 去重機制主要有兩種方法: (1) 完全顯存形式; (2) 基于c盤(pán)的緩存方法。完全顯存形式就是指估算URL 的Hash 值, 一般用4 至6個(gè)字節表示, 這樣10 億個(gè)網(wǎng)頁(yè)的URL 就須要5 到8個(gè)G的顯存。
   另一種方法是開(kāi)一個(gè)大鏈表進(jìn)行按位驗證, 這樣只需后者八分之一的顯存, 但有可能錯判, 且誤判率隨著(zhù)爬行規模的減小而提升。 基于c盤(pán)的緩存方法則是將大部分數據放 在c盤(pán)上, 內存里儲存一個(gè)緩存, 然后按照策略更新緩存。 由于c盤(pán)的速率比內 存慢一個(gè)數量級, 一旦所查URL不命中緩存, 就必須在c盤(pán)中進(jìn)行查找, 從而大 大影響效率。 2.4 URL分配模塊 抓取的效率主要依賴(lài)于硬件資源、網(wǎng)絡(luò )的帶寬以及程序執行效率等。普通單 處理機系統受限于CPU 的處理能力、 磁盤(pán)存儲的容量, 不可能具備處理海量信息 的能力, 這就要求Crawler 支持分布式協(xié)同工作。 URL 分配模塊主要考慮兩個(gè)問(wèn)題: (1) 在節點(diǎn)間界定URL的策略, 即怎樣分 配下載任務(wù);(2) 優(yōu)化性能, 比如負載均衡、協(xié)同工作的開(kāi)支等。 3.設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題 3.1 可伸縮性 面對網(wǎng)路上數以萬(wàn)億計的網(wǎng)頁(yè), 使用有限的資源運轉一個(gè)高性能、 可伸縮的 Crawler 是一個(gè)首要任務(wù)。完成這項任務(wù)一般有3 點(diǎn)要求。首先, 采用的算法和 數據結構要才能支持Crawler 處理海量的網(wǎng)頁(yè)。 其次, 在有限資源下, 爬行的平 均速率必須維持一個(gè)較高的水平。
   第三, 在添加硬件的情況下, 性能才能得到線(xiàn) 性下降。 在效率方面, 由于網(wǎng)絡(luò )爬蟲(chóng)可以看成是一個(gè)生產(chǎn)者消費者模型, 如何讓 各個(gè)模塊協(xié)調工作, 以達到最佳性能, 也是一個(gè)嚴重的挑戰。 3.2 提高下載質(zhì)量 網(wǎng)絡(luò )爬蟲(chóng)的目標是抓取互聯(lián)網(wǎng)上所有有價(jià)值的網(wǎng)頁(yè)。 哪些網(wǎng)頁(yè)有價(jià)值, 如何 抓取這種網(wǎng)頁(yè), 這些問(wèn)題須要對網(wǎng)頁(yè)的質(zhì)量有一個(gè)較為全面的評價(jià)。 而評價(jià)標準 主要依賴(lài)對互聯(lián)網(wǎng)和用戶(hù)需求的理解。其中, 主要包括以下幾個(gè)方面的問(wèn)題: ①網(wǎng)頁(yè)之間的鏈接關(guān)系。 ②URL 本身的質(zhì)量。 ③網(wǎng)頁(yè)重復情況。 ④網(wǎng)頁(yè)內容的評價(jià)。 3.3 網(wǎng)頁(yè)更新 目前網(wǎng)頁(yè)更新的方法有兩種: 一種是周期性進(jìn)行更新。 Crawler 第一次爬行 到設定好的規模后, 停止爬行, 然后每隔一段( 固定的) 時(shí)間對本地的索引數 據庫網(wǎng)頁(yè)進(jìn)行一次全面的信息更新維護, 即替換掉陳舊的信息, 加入新生成的 網(wǎng)頁(yè)。更新周期通常以禮拜或月為計量單位。我們稱(chēng)這些為周期性Crawler。另 一種是增量式信息更新方式。 因為互聯(lián)網(wǎng)中包含的大量網(wǎng)頁(yè)的更新周期是不一致 的, 有的變化無(wú)常, 有的非常穩定。 因此應當以網(wǎng)頁(yè)的變化周期作為進(jìn)行有效性 驗證的根據。
   在每一次網(wǎng)頁(yè)的更新過(guò)程中, 只對這些最有可能發(fā)生變化的網(wǎng)頁(yè)進(jìn) 行更新, 以不同的頻度更新不同的網(wǎng)頁(yè)。Crawler會(huì )仍然不停地爬行, 更新陳舊 的網(wǎng)頁(yè), 并用新的更重要的網(wǎng)頁(yè)替換掉次重要的網(wǎng)頁(yè)。 我們稱(chēng)采用這些方法的爬蟲(chóng)為增量式Crawler。 從理論上來(lái)講, 增量式Crawler比周期性Crawler 效率更高。 但怎么確定每位網(wǎng)頁(yè)的更新頻度, 是一個(gè)難點(diǎn)。 4.爬蟲(chóng)身分辨識 網(wǎng)絡(luò )爬蟲(chóng)通過(guò)使用 http 請求的用戶(hù)代理數組來(lái)向網(wǎng)路服務(wù)器表明她們的 身份。網(wǎng)絡(luò )管理員則通過(guò)檢測網(wǎng)路服務(wù)器的日志,使用用戶(hù)代理數組來(lái)辨別哪一 個(gè)爬蟲(chóng)以前訪(fǎng)問(wèn)過(guò)以及它訪(fǎng)問(wèn)的頻度。 用戶(hù)代理數組可能會(huì )包含一個(gè)可以使管理 員獲取爬蟲(chóng)更多信息的 URL。郵件抓取器和其他懷有惡意的網(wǎng)路爬蟲(chóng)一般不會(huì )留 任何的用戶(hù)代理數組內容, 或者她們也會(huì )將她們的身分偽裝成瀏覽器或則其他的 知名爬蟲(chóng)。 5.開(kāi)發(fā)工具介紹 5.1 Windows .NET Framework 2.0 開(kāi)發(fā)平臺 NET Framework 是支持生成和運行下一代應用程序和 XML Web services 的內部 Windows 組件。NET Framework 主要包含一個(gè)特別大的代碼庫,可以在顧客語(yǔ)言 ( 如 C++) 中 通 過(guò) 面 向 對 象 編 程 技 術(shù) (OOP) 來(lái) 使 用 這 些 代 碼 。
   這 個(gè) 部 分 .NET Framework 庫定義了一些基本類(lèi)型。庫分為不同的模塊,這樣就可以按照希望得 到的結果來(lái)選擇使用其中的各個(gè)部份。 5.2 開(kāi)發(fā)工具 C++ C++是由 C 子語(yǔ)言、 面向對象的 C++、 泛型編程語(yǔ)言和 STL (C++標準模板庫, Standard Template Library)組成的程序設計語(yǔ)言。C++支持 C 語(yǔ)言的幾乎全部 功能,在句型上與 C 語(yǔ)言?xún)H有極微妙的差異。C++強大(但容易失控的)模板功 能使它能在編譯期完成許多工作,從而大大提升運行期效率。隨著(zhù) STL 的不斷發(fā) 展,它早已漸漸成為 C++程序設計中不可或缺的部份,其效率可能比通常的 native 代碼低些,但是其安全性與規范性讓它大受歡迎。 5.3 后臺數據庫 ACCESS 數據庫 Microsoft Office Access(前名 Microsoft Access)是由谷歌發(fā)布的關(guān)聯(lián) 式數據庫管理系統。它結合了 Microsoft Jet Database Engine 和 圖形用戶(hù)界 面兩項特征,是 Microsoft Office 的成員之一。它簡(jiǎn)單易用,可以勝任小批量 的查詢(xún)工作。
   三、總結 本文分別從目前搜索引擎的發(fā)展現況、網(wǎng)絡(luò )爬蟲(chóng)的定義、爬行策略、爬蟲(chóng)的體系 結構、 設計網(wǎng)路爬蟲(chóng)的關(guān)鍵問(wèn)題以及爬蟲(chóng)的身分辨識等方面介紹了怎樣設計一個(gè) 網(wǎng)絡(luò )爬蟲(chóng),另外本文也從開(kāi)發(fā)所需的操作系統、開(kāi)發(fā)工具以及所涉及到的數據庫 技術(shù)等方面簡(jiǎn)單介紹了怎樣實(shí)現一個(gè)網(wǎng)絡(luò )爬蟲(chóng), 并最終確立了使用 Windows .NET Framework 2.0 開(kāi)發(fā)平臺、C++與 ACCESS 的開(kāi)發(fā)方案。本文的最終目標是設計實(shí) 現一個(gè)才能依據用戶(hù)提供的種子網(wǎng)站, 定向抓取相關(guān)網(wǎng)頁(yè)資源并將其內容存入數 據庫或文本文件中的網(wǎng)路爬蟲(chóng)。參考文獻:[1] 劉金紅,陸余良.主題網(wǎng)路爬蟲(chóng)研究綜述[J].計算機應用研究,2007,(10):70-79. [2] 羅剛,王振東. 自己動(dòng)手寫(xiě)網(wǎng)路爬蟲(chóng)[M].清華大學(xué)出版社,2010c++網(wǎng)絡(luò )爬蟲(chóng),(10). [3] 大連海事大學(xué)計算機科學(xué)與技術(shù)學(xué)院.主題搜索引擎中網(wǎng)路爬蟲(chóng)的搜索策略研究[J].計算 機工程與科學(xué),2008,(03):44-46. [4] 羅剛.自己動(dòng)手寫(xiě)搜索引擎[M].電子工業(yè)出版社,2009,(11). [5] 鄭志高,劉慶圣,陳立彬.基于主題網(wǎng)路爬蟲(chóng)的網(wǎng)路學(xué)習資源搜集平臺的設計[J].中國教 育信息化,2010,(01):55-67. [6] 汪濤,樊孝忠.主題爬蟲(chóng)的設計與實(shí)現[J].計算機應用,2004,(S1):110-121. [7] 汪濤,樊孝忠.鏈接分析對主題爬蟲(chóng)的改進(jìn)[J].計算機應用,2004,(S2):55-70. [8] 尹江, 尹治本, 黃洪.網(wǎng)絡(luò )爬蟲(chóng)效率困局的剖析與解決方案[J].計算機應用, 2008, (5):20-31. [9] 汪濤, 樊孝忠, 顧益軍, 劉林.基于概念剖析的主題爬蟲(chóng)設計[J].北京理工大學(xué)學(xué)報, 2004, (10):33-41. [10] 李蕾,王楠,張劍,鐘義信,郭祥昊,賈自燕.中文搜索引擎概念檢索初探[J]. 計算機 工程與應用,2000,(06):66-75. [11] 潘春華,馮太明,武港山.基于聯(lián)通爬蟲(chóng)的專(zhuān)用 Web 信息搜集系統的設計[J].計算機工程 與應用,2003,(36):99-109. [12] 赫楓齡, 左萬(wàn)利.利用超鏈接信息改進(jìn)網(wǎng)頁(yè)爬行器的搜索策略[J].吉林大學(xué)學(xué)報(信息科學(xué) 版),2005,(01):100-108.

聚焦爬蟲(chóng)常見(jiàn)算法剖析

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 340 次瀏覽 ? 2020-05-17 08:02 ? 來(lái)自相關(guān)話(huà)題

  電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
  例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
   但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
   Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
   (1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
  因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
  相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
   參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
  小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
  首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè)) 查看全部

  電腦知識與技術(shù) 數據庫與信息管理 聚焦爬蟲(chóng)常見(jiàn)算法剖析 陳 麗 君 (浙江越秀外國語(yǔ)學(xué)院 浙江湖州 312000) [摘 要] 聚焦爬蟲(chóng)收集與特定主題相關(guān)的頁(yè)面,為搜索引擎建立頁(yè)面集。傳統的聚焦爬蟲(chóng)采用向量空間模型和局部搜索算法,精確 率和召回率都比較低。文章分析了聚焦爬蟲(chóng)存在的問(wèn)題及其相應的解決方式。最后對未來(lái)的研究方向進(jìn)行了展望。 [關(guān)鍵詞] 搜索引擎; 聚焦爬蟲(chóng); 算法 不同于google、百度等通用搜索引擎,聚焦爬蟲(chóng)(也稱(chēng)為主題 爬蟲(chóng))是一個(gè)能下載相關(guān)Web頁(yè)的程序或自動(dòng)化腳本。隨著(zhù)Web 頁(yè)面的迅速攀升和特定領(lǐng)域搜索的需求,近年來(lái),聚焦爬蟲(chóng)在工業(yè) 和學(xué)術(shù)界造成了廣泛關(guān)注。 第一個(gè)聚焦爬蟲(chóng)是Chakrabarti于1999提出的[1]。聚焦爬蟲(chóng)一 般由兩種算法來(lái)保證抓取特定領(lǐng)域的信息,一是Web剖析算法, 依據URL的指向判定Web頁(yè)面的相關(guān)程度和質(zhì)量;二是Web搜索 算法,它決定著(zhù)被爬取URL的最佳順序。 一、常見(jiàn)算法 1.Web頁(yè)面剖析算法 目前,已出現了許多頁(yè)面剖析算法,一般可以分為兩大類(lèi): 基于內容的和基于鏈接結構的。前者通過(guò)剖析一個(gè)實(shí)際Web頁(yè)的 HTML文檔,來(lái)獲取關(guān)于頁(yè)面自身的相關(guān)性信息。
  例如,在文檔索 引技術(shù)的幫助下,可以從文檔中抽取關(guān)鍵詞或句子,依此確定該 文檔是否與指定域相關(guān)。另外,也可以用VSM(向量空間模型) 與指定域的標準文檔比較。對于前者,相關(guān)研究者發(fā)覺(jué),Web鏈 接結構中包含有許多制作者蘊涵的信息,而這種信息對剖析文檔 的相關(guān)性和質(zhì)量起著(zhù)重要作用。例如,當一個(gè)頁(yè)面A指向另一個(gè)頁(yè) 面B時(shí),就意味著(zhù)A頁(yè)面的作者暗示著(zhù)頁(yè)面B也富含類(lèi)似的內容。另 外,頁(yè)面包含的接入鏈接越多就意味著(zhù)該頁(yè)面越重要?;阪溄臃? 析的算法主要有PageRank和HITS。 2.Web搜索算法 該算法的主要目的是確定最優(yōu)的URL訪(fǎng)問(wèn)順序。與頁(yè)面剖析算法 一樣,搜索也有許多算法,以Breadth-first和Best-first最為流行。 2.1 Breadth-first搜索 該算法的思想比較簡(jiǎn)單,所有在當前層中的URL還會(huì )根據上一 層中它們被發(fā)覺(jué)的次序訪(fǎng)問(wèn),其最大特征是不分辨頁(yè)面的質(zhì)量和主 題,所以最適合于通用搜索。但最近也有研究[2]表明,如果假定 當前層中的所有URL都是與主題相關(guān)的,那么它們的下一層URL也 會(huì )與主題相關(guān)。這樣,Breadth-first就可用作收集一定質(zhì)量的主題 相關(guān)頁(yè)面,即聚焦搜索算法。
   但是,當抓取相當數目的頁(yè)面后,該算法會(huì )引入許多噪聲信息 (非相關(guān)信息),或形成主題甩尾現象。已有研究人員提出將此算 法與頁(yè)面剖析算法相結合[4],先用Breadth-first收集頁(yè)面,再用頁(yè) 面剖析算法過(guò)濾掉不相關(guān)的頁(yè)面,這樣即使降低了噪聲信息,但降 低了算法的效率。 2.2 Best-first搜索 該算法目前比較流行。與Breadth-first不同,該算法不是簡(jiǎn)單 地根據被發(fā)覺(jué)的順序訪(fǎng)問(wèn),而是采用某種啟發(fā)式思想(比如頁(yè)面分 析的結果)來(lái)調整URL在隊列中的排序,排在后面的被覺(jué)得是與主 題更接近的頁(yè)面,要優(yōu)先訪(fǎng)問(wèn),反之,則推后甚至不被訪(fǎng)問(wèn)。因 此,Best-first搜索顯著(zhù)要比Breadth-first搜索更優(yōu)越。 并且,Best-first是一個(gè)局部搜索算法,它只關(guān)心以前訪(fǎng)問(wèn)節 點(diǎn)周?chē)捻?yè)面空間,因此會(huì )喪失許多相關(guān)頁(yè)面,最后收集的頁(yè)面質(zhì) 量也不會(huì )很高。 二、存在問(wèn)題 1.頁(yè)面剖析算法 頁(yè)面剖析是聚焦爬蟲(chóng)的重要組成部份,如果頁(yè)面剖析算法對頁(yè) 面的判定不夠確切,將會(huì )影響到搜索算法,導致搜集到頁(yè)面的質(zhì)量 偏低。因此,實(shí)現一個(gè)高效的頁(yè)面剖析算法是做好聚焦爬蟲(chóng)的第一 步。
   Web文檔一般富含噪聲,比如極少數的文本、圖像、腳本等 對分類(lèi)器沒(méi)用的數據。而且,不同制作者在風(fēng)格、語(yǔ)言、結構上 存在很大的差別。因此,采用簡(jiǎn)單的相似性函數(如tf-idf等)的 VSM很難取得令人滿(mǎn)意的療效。 一種解決的方式是,組合各類(lèi)基于內容的相似性測度方式,可 以提升分類(lèi)的準確率[4]。比如遺傳算法等全局搜索模式也是一種 潛在的解決方案。 2.局部搜索算法 局部搜索算法的特征是,訪(fǎng)問(wèn)當初訪(fǎng)問(wèn)過(guò)節點(diǎn)周?chē)泥従庸? 點(diǎn),這樣假如一個(gè)相關(guān)頁(yè)沒(méi)有被現有URL所指向,那么聚焦爬蟲(chóng)就 會(huì )喪失對這個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。而且,如果在兩個(gè)相關(guān)頁(yè)面中間隔 有不相關(guān)的頁(yè)面,聚焦爬蟲(chóng)也會(huì )舍棄對后一個(gè)相關(guān)頁(yè)面的訪(fǎng)問(wèn)。因 此,采用局部搜索算法的聚焦爬蟲(chóng)只能夠發(fā)覺(jué)圍繞在起始種子集周 圍的相關(guān)頁(yè)面,它們僅僅是整個(gè)Web相關(guān)頁(yè)面集的有限子集,而 喪失了該子集外的相關(guān)頁(yè)面。 通過(guò)對Web結構的研究,人們發(fā)覺(jué)了Web社區[3],也即在線(xiàn) 的Web頁(yè)自然地按照特定的鏈接結構分成了不同的組,組內頁(yè)面 都接近于個(gè)別主題或興趣。聚焦爬蟲(chóng)的目的就是要獲取所有的屬于 那些相關(guān)社區的頁(yè)面,然而,Web社區的以下三種特點(diǎn),使得局 部搜索算法不再適用于集聚爬蟲(chóng)。
   (1)主題相像的社區之間,采用的不是直接的互相鏈接,而 是互相引用的關(guān)系。在商業(yè)領(lǐng)域,這是一個(gè)相當普遍現象。例如, Yahoo新聞、MSN新聞、Google新聞都提供相同或相像的新聞信 Algorithm Analysis of Focused Crawler Chen Lijun (Zhejiang Yuexiu University of Foreign Languages, Shaoxing Zhejing 312000, China) Abstract: Focused crawlers can selectively retrieve web documents relevant to a specific domain to build collections for domain- specific search engines. Traditional focused crawlers normally adopting the simple Vector Space Model and local Web search algorithms typically only find relevant Web pages with low precision and recall. This work describes and analyses problems associated with traditional focused crawlers and some potential solutions. The future directions are addressed. Key words: search engine; focused crawler; algorithm 筆記本知識與技術(shù) 數據庫與信息管理 息,但因為競爭關(guān)系,它們并不包含彼此之間的鏈接。
  因此,即使 它們都被作為相關(guān)Web社區的起始頁(yè)面種子集,聚焦爬蟲(chóng)還是會(huì ) 喪失一些相關(guān)的頁(yè)面。 (2)相關(guān)頁(yè)面之間可能被非相關(guān)的社區所隔斷。有研究表 明,大多數相關(guān)域就會(huì )被起碼1~12個(gè)非相關(guān)頁(yè)面所分隔,平均非 相關(guān)間隔頁(yè)面數為5,而聚焦爬蟲(chóng)在碰到非相關(guān)頁(yè)面后不會(huì )繼續訪(fǎng) 問(wèn)后續的頁(yè)面,造成了大量相關(guān)頁(yè)面的流失。 (3)雖然鏈接在相關(guān)頁(yè)面間存在,但不是互相的單向鏈接, 而是雙向的。也即兩個(gè)相關(guān)的社區A和B,A和B之間存在著(zhù)鏈接, 并且僅僅是一個(gè)方向的,比如只有從A到B的鏈接,而不存在從B到 A的鏈接。這樣,當爬行順序從A開(kāi)始時(shí)網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,B社區同樣能被發(fā)覺(jué),但 若爬行順序是從B開(kāi)始時(shí),則A社區就不能從B中被發(fā)覺(jué),造成A中 的相關(guān)頁(yè)流失。 三、 解決方式 一種最簡(jiǎn)單的解決方式是提供更多的起始種子集,但這樣也增 加了成本和時(shí)間,而且隨著(zhù)Web頁(yè)面的迅速降低,這種解決方式 并不可取。 另一種解決方式是采用隧道技術(shù)[5],它基于啟發(fā)式方法解決 簡(jiǎn)單的全局優(yōu)化問(wèn)題。當聚焦爬蟲(chóng)遇見(jiàn)非相關(guān)的頁(yè)面時(shí),不是馬上 舍棄繼續搜索,而是在一定搜索深度(該值須要事先指定)范圍內 繼續搜索。
  相關(guān)實(shí)驗結果表明,隧道技術(shù)能發(fā)覺(jué)更多的相關(guān)頁(yè)面, 并且,由于它沒(méi)有改變局部搜索的本性,不能從根本上解決問(wèn)題。 同時(shí),噪音也被引入進(jìn)來(lái),降低了頁(yè)面搜集質(zhì)量。 研究人員通過(guò)對Web規模的研究發(fā)覺(jué),主要搜索引擎之間索引 的重疊內容極少,因此,可以組合各類(lèi)不同搜索引擎搜索結果中比 較靠前的結果,也就是元搜索技術(shù),來(lái)解決局部搜索導致的問(wèn)題。 四、未來(lái)展望 近些年來(lái),研究人員發(fā)覺(jué)Web信息的分布存在一定的相似性, 因而考慮先進(jìn)行訓練,使爬蟲(chóng)具備一定的“經(jīng)驗知識”,通過(guò)這種 知識預測將來(lái)的回報。比如McCallum[6]引入鞏固學(xué)習過(guò)程,先利 用鞏固學(xué)習算法估算每位鏈接的回報價(jià)值Q,用Q值相同或相仿的 鏈接文本信息訓練一個(gè)貝葉斯分類(lèi)器,再對未知的鏈接文本,用該 分類(lèi)器估算鏈接屬于該類(lèi)的機率,并借此機率為權重估算鏈接的綜 合價(jià)值。也可以借助“智能搜索”技術(shù),通過(guò)在線(xiàn)學(xué)習鏈接結構特 征,用于指導搜索過(guò)程。 五、結語(yǔ) 隨著(zhù)網(wǎng)頁(yè)呈指數級的快速下降,以及人們對搜索結果精度要求的 不斷提升,新的算法不斷涌現,如基于機器學(xué)習的剖析算法、相似性 判定的遺傳算法等。相信在研究人員的繼續努力下,還會(huì )出現更多更 加確切、更加快速的新算法,不斷增強人們對搜索結果的滿(mǎn)意度。
   參考文獻: [1] Chakrabarti, S., Berg, M.V.D., and Dom, B., Focused crawling: A New Approach to Topic-Sepcific Web Resouce Discovery. In Proceedings of the 8th International WWW Conf. 1999.Toronto, Canada. [2] Najork, M. and Wiener, J.L., Breadth-First Search Crawling Yields High-Quality Pages. In Proceedings of the 10th International WWW Conf. 2001. Hong Kong, China. [3] Flake, G.W., Lawrence, S., and Giles, C.L., Efficient Identification of Web Communities. In Proceediings of the 6 th ACM SIGKDD International Conf. 2000. Massachusetts, USA. [4] Qin, J. and Chen, H., Using Genetic Algorithm in Building Domain-Specific Collections: An Experiment in the Nanotechnology Domain. In Proceedings of the 38th Annual Hawaii International Conf. 2005. Hawaii, USA. [5] Bergmark, D., Lagoze, C., and Sbityakov, A., Focused Crawls, Tunneling, and Digital Libraries. In Porceedings of the 6th European Conf. 2002. Rome, Italy. [6] Rennie J, McCallum A. Using Reinforcement Learning to Spider the Web Efficiently. In Proc. of the International Conference on Machine Learning(ICML’99),1999. 取系數絕對值較大法適宜小波變換后的HL頻帶圖象、LH頻 帶圖象、HH頻帶圖象等高頻成份較豐富,亮度、對比度較高的圖 象;融合圖象中基本保留源圖象的特點(diǎn),圖像對比度與源圖象基本 相同。
  小波變換的作用是對訊號解相關(guān),并將訊號的全部信息集中 到一部分具有大幅值的小波系數中。這些大的小波系數富含的能量 遠比小系數富含的能量大,從而在訊號的構建中,大的系數比小的 系數更重要。 3.3 一致性檢查 圖象中相鄰象素點(diǎn)之間可能存在著(zhù)空間冗余,因此空間上相鄰 的點(diǎn)太可能屬于同一圖象的特點(diǎn),因此應當對它們采用同一種方式 進(jìn)行估算。根據這一思想,H.Li等提出用大多數原則對決策因子d 進(jìn)行一致性檢查。如果融合后的圖象C在某個(gè)區域的中心點(diǎn)上的系 數來(lái)自于源圖象A,而該點(diǎn)周?chē)狞c(diǎn)的系數均來(lái)自于源圖象B,則 將中心點(diǎn)的系數替換為圖象B的系數。 3.4 綜合方式 源圖象A,B分別進(jìn)行小波分解,對小波變換后的LL頻帶圖象 采取加權平均法,為了提升圖象的質(zhì)量,還可以在加權平均后采 用高斯低通濾波。對LH頻帶、HL頻帶、HH頻帶采用取系數絕對值 較大法,即取源圖象A,B中小波系數較大的作為C的小波系數。另 外,為了盡量避開(kāi)引入噪音,還應進(jìn)行一致性檢查,即若C上某點(diǎn) 的小波系數取自源圖象A,而其周?chē)狞c(diǎn)均取自源圖象B,則將該 點(diǎn)的小波系數改為源圖象B的小波系數。 4 圖像融合的現況及發(fā)展前景 近些年來(lái),雖然圖象融合技術(shù)發(fā)展迅速,但這仍是個(gè)沒(méi)有統一理 論框架的新領(lǐng)域。
  首先,影響圖象融合療效的誘因好多,例如,融 合算法的選定、小波基的選定以及小波分解層數的選擇等;其次, 須要構建客觀(guān)的圖象融合技術(shù)評價(jià)標準;最后,特征級圖象融和決 策級圖象融合還有待長(cháng)足的發(fā)展。 現有研究結果顯示,對不同的頻帶采用了不同的融合算法結果 表明,對于低頻部份采用加權方式較好,對于高頻部份采用帶一致 性檢查的系數絕對值較大法融合療效較好。 5 結束語(yǔ) 多傳感圖象融合技術(shù)作為信息融合研究領(lǐng)域的一項重要內 容網(wǎng)絡(luò )爬蟲(chóng)算法書(shū)籍,將會(huì )在軍事、遙感、機器人視覺(jué)和醫學(xué)圖象處理等領(lǐng)域得到廣 泛應用。 參考文獻: [1] 李敏,張小英,毛捷. 基于鄰域殘差加權平均的小波圖象融合 [J]. 理論與技巧,2008,27(1):5-6 [2] 王攀峰,杜云飛,周海芳,楊學(xué)軍. 基于復小波變換的遙感圖象并行 融合算法 [J]. 計算機工程與科學(xué),2008,30(3):35-39 [3] 閆敬文. 數字圖像處理(MATLAB版)[M]. 國防工業(yè)出版社,2007. [4] 曹杰,龔聲蓉,劉純平. 一種新的基于小波變換的多聚焦圖象融 合算法[J]. 計算機工程與應用,2007,43(24):47-50 [5] 任娜,郭敏,胡麗華,張景虎. 基于圖象塊分割及小波空間頻度 的多聚焦圖象融合法[J]. 科學(xué)技術(shù)與工程,2008,8(2):411-414 [6] 成禮智,王紅霞,羅永. 小波的理論與應用[M]. 科學(xué)出版社,2006. [7] 蔡娜,姚志強,沙晉明. 基于小波變換的遙感圖象融合方式[J]. 莆田學(xué)院學(xué)報,2008,15(2):79-82 [8] 胡鋼,秦新強,田徑. 像素級多傳感圖象融合技術(shù)[J]. 沈陽(yáng)工 程學(xué)院學(xué)報,2007,3(2):148-152 (上接42頁(yè))

網(wǎng)絡(luò )爬蟲(chóng)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 370 次瀏覽 ? 2020-05-14 08:09 ? 來(lái)自相關(guān)話(huà)題

  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)又名“網(wǎng)絡(luò )蜘蛛”,是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)找尋網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,讀取網(wǎng)頁(yè)的內容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這種鏈接地址找尋下一個(gè)網(wǎng)頁(yè),這樣仍然循環(huán)下去,直到根據某種策略把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取完為止的技術(shù)。
  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。實(shí)際應用中一般是將系統幾種爬蟲(chóng)技術(shù)互相結合。
  (一)通用網(wǎng)路爬蟲(chóng)(general purpose web crawler)
  通用網(wǎng)路爬蟲(chóng)按照預先設定的一個(gè)或若干初始種子URL開(kāi)始,以此獲得初始網(wǎng)頁(yè)上的URL列表,在爬行過(guò)程中不斷從URL隊列中獲一個(gè)的URL,進(jìn)而訪(fǎng)問(wèn)并下載該頁(yè)面。頁(yè)面下載后頁(yè)面解析器除去頁(yè)面上的HTML標記后得到頁(yè)面內容,將摘要、URL等信息保存到Web數據庫中,同時(shí)抽取當前頁(yè)面上新的URL,保存到URL隊列,直到滿(mǎn)足系統停止條件。其工作流程如圖1所示。
  
  通用爬蟲(chóng)主要存在以下幾方面的局限性:1)由于抓取目標是盡可能大的覆蓋網(wǎng)路,所以爬行的結果中包含大量用戶(hù)不需要的網(wǎng)頁(yè);2)不能挺好地搜索和獲取信息濃度密集且具有一定結構的數據;3)通用搜索引擎大多是基于關(guān)鍵字的檢索,對于支持語(yǔ)義信息的查詢(xún)和索引擎智能化的要求無(wú)法實(shí)現。
  由此可見(jiàn),通用爬蟲(chóng)想在爬行網(wǎng)頁(yè)時(shí),既保證網(wǎng)頁(yè)的質(zhì)量和數目,又要保證網(wǎng)頁(yè)的時(shí)效性是很難實(shí)現的。
  (二)主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)
  1.主題爬蟲(chóng)原理
  主題爬蟲(chóng)并不追求大的覆蓋率,也不是全盤(pán)接受所有的網(wǎng)頁(yè)和URL,它按照既定的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息,不僅客服了通用爬蟲(chóng)存在的問(wèn)題,而H-返回的數據資源更精確。主題爬蟲(chóng)的基本工作原理是根據預先確定的主題,分析超鏈接和剛才抓取的網(wǎng)頁(yè)內容,獲取下一個(gè)要爬行的URL,盡可能保證多爬行與主題相關(guān)的網(wǎng)頁(yè),因此主題爬蟲(chóng)要解決以下關(guān)鍵問(wèn)題:1)如何判斷一個(gè)早已抓取的網(wǎng)頁(yè)是否與主題相關(guān);2)如何過(guò)濾掉海量的網(wǎng)頁(yè)中與主題不相關(guān)的或則相關(guān)度較低的網(wǎng)頁(yè);3)如何有目的、有控制的抓取與特定主題相關(guān)的web頁(yè)面信息;4)如何決定待訪(fǎng)問(wèn)URL的訪(fǎng)問(wèn)順序;5)如何提升主題爬蟲(chóng)的覆蓋度;6)如何協(xié)調抓取目標的描述或定義與網(wǎng)頁(yè)分析算法及候選URL排序算法之問(wèn)的關(guān)系;7)如何找尋和發(fā)覺(jué)高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源。高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源除了可以大大提升主題爬蟲(chóng)收集Web頁(yè)面的效率和質(zhì)量,還可以為主題表示模型的優(yōu)化等應用提供支持。
  2.主題爬蟲(chóng)模塊設計
  主題爬蟲(chóng)的目標是盡可能多的發(fā)覺(jué)和收集與預定主題相關(guān)的網(wǎng)頁(yè)網(wǎng)絡(luò )爬蟲(chóng),其最大特征在于具備剖析網(wǎng)頁(yè)內容和判斷主題相關(guān)度的能力。根據主題爬蟲(chóng)的工作原理,下面設計了一個(gè)主題爬蟲(chóng)系統,主要有頁(yè)面采集模塊、頁(yè)面剖析模塊、相關(guān)度估算模塊、頁(yè)面過(guò)濾模塊和鏈接排序模塊幾部份組成網(wǎng)絡(luò )爬蟲(chóng),其總體功能模塊結構如圖2所示。
  
  頁(yè)面采集模塊:主要是依據待訪(fǎng)問(wèn)URL隊列進(jìn)行頁(yè)面下載,再交給網(wǎng)頁(yè)剖析模型處理以抽取網(wǎng)頁(yè)主題向量空間模型。該模塊是任何爬蟲(chóng)系統都必不可少的模塊。頁(yè)面剖析模塊:該模塊的功能是對采集到的頁(yè)面進(jìn)行剖析,主要用于聯(lián)接超鏈接排序模塊和頁(yè)面相關(guān)度估算模塊。
  頁(yè)面相關(guān)度估算模塊:該模塊是整個(gè)系統的核心模塊,主要用于評估與主題的相關(guān)度,并提供相關(guān)的爬行策略用以指導爬蟲(chóng)的爬行過(guò)程。URL的超鏈接評價(jià)得分越高,爬行的優(yōu)先級就越高。其主要思想是,在系統爬行之前,頁(yè)面相關(guān)度估算模塊按照用戶(hù)輸入的關(guān)鍵字和初始文本信息進(jìn)行學(xué)習,訓練一個(gè)頁(yè)面相關(guān)度評價(jià)模型。當一個(gè)被覺(jué)得是主題相關(guān)的頁(yè)面爬行出來(lái)以后,該頁(yè)面就被送入頁(yè)面相關(guān)度評價(jià)器估算其主題相關(guān)度值,若該值小于或等于給定的某儔值,則該頁(yè)面就被存入頁(yè)面庫,否則遺棄¨。頁(yè)面過(guò)濾模塊:過(guò)濾掉與主題無(wú)關(guān)的鏈接,同時(shí)將該URL及其所有蘊涵的子鏈接一并清除。通過(guò)過(guò)濾,爬蟲(chóng)就無(wú)需遍歷與主題不相關(guān)的頁(yè)面,從而保證了爬行效率。排序模塊:將過(guò)濾后頁(yè)面根據優(yōu)先級高低加入到待訪(fǎng)問(wèn)的URL隊列里。
  3.主題爬蟲(chóng)流程設計
  主題爬蟲(chóng)須要依照一定的網(wǎng)頁(yè)剖析算法,過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它會(huì )依照一定的搜索策略從待抓取的隊列中選擇下一個(gè)要抓取的URL,并重復上述過(guò)程,直到滿(mǎn)足系統停止條件為止。所有被抓取網(wǎng)頁(yè)就會(huì )被系統儲存,經(jīng)過(guò)一定的剖析、過(guò)濾,然后構建索引,以便用戶(hù)查詢(xún)和檢索;這一過(guò)程所得到的剖析結果可以對之后的抓取過(guò)程提供反饋和指導。其工作流程如圖3所示。
  
  4.深度網(wǎng)路爬蟲(chóng)(Deep Web Crawler)
  1994年Dr.jillEllsworth提出DeepWeb(深層頁(yè)面)的概念,即DeepWeb是指普通搜索引擎無(wú)法發(fā)覺(jué)的信息內容的Web頁(yè)面¨。DeepWeb中的信息量比普通的網(wǎng)頁(yè)信息量多,而且質(zhì)量更高。但是普通的搜索引擎因為技術(shù)限制而收集不到這種高質(zhì)量、高權威的信息。這些信息一般隱藏在深度Web頁(yè)面的小型動(dòng)態(tài)數據庫中,涉及數據集成、中文語(yǔ)義辨識等眾多領(lǐng)域。如此龐大的信息資源假如沒(méi)有合理的、高效的方式去獲取,將是巨大的損失。因此,對于深度網(wǎng)爬行技術(shù)的研究具有極為重大的現實(shí)意義和理論價(jià)值。
  常規的網(wǎng)路爬蟲(chóng)在運行中難以發(fā)覺(jué)隱藏在普通網(wǎng)頁(yè)中的信息和規律,缺乏一定的主動(dòng)性和智能性。比如須要輸入用戶(hù)名和密碼的頁(yè)面,或者包含頁(yè)腳導航的頁(yè)面均未能爬行。深度爬蟲(chóng)的設計針對常規網(wǎng)路爬蟲(chóng)的那些不足,將其結構做以改進(jìn),增加了表單剖析和頁(yè)面狀態(tài)保持兩個(gè)部份,其結構如圖4所示,通過(guò)剖析網(wǎng)頁(yè)的結構并將其歸類(lèi)為普通網(wǎng)頁(yè)或存在更多信息的深度網(wǎng)頁(yè),針對深度網(wǎng)頁(yè)構造合適的表單參數而且遞交,以得到更多的頁(yè)面。深度爬蟲(chóng)的流程圖如圖4所示。深度爬蟲(chóng)與常規爬蟲(chóng)的不同是,深度爬蟲(chóng)在下載完成頁(yè)面然后并沒(méi)有立刻遍歷其中的所有超鏈接,而是使用一定的算法將其進(jìn)行分類(lèi),對于不同的類(lèi)別采取不同的方式估算查詢(xún)參數,并將參數再度遞交到服務(wù)器。如果遞交的查詢(xún)參數正確,那么將會(huì )得到隱藏的頁(yè)面和鏈接。深度爬蟲(chóng)的目標是盡可能多地訪(fǎng)問(wèn)和搜集互聯(lián)網(wǎng)上的網(wǎng)頁(yè),由于深度頁(yè)面是通過(guò)遞交表單的形式訪(fǎng)問(wèn),因此爬行深度頁(yè)面存在以下三個(gè)方面的困難:1)深度爬蟲(chóng)須要有高效的算法去應對數目巨大的深層頁(yè)面數據;2)很多服務(wù)器端DeepWeb要求校準表單輸入,如用戶(hù)名、密碼、校驗碼等,如果校準失敗,將不能爬到DeepWeb數據;3)需要JavaScript等腳本支持剖析客戶(hù)端DeepWeb。
  
  [編輯]
  (1)IP地址搜索策略
  IP地址搜索策略是先給爬蟲(chóng)一個(gè)起始的IP地址,然后按照IP地址以遞增的形式搜索本IP地址段后的每一個(gè)地址中的文檔,它完全不考慮各文檔中指向其它Web站點(diǎn)的超級鏈接地址。這種搜索策略的優(yōu)點(diǎn)是搜索比較全面,因此能否發(fā)覺(jué)這些沒(méi)被其它文檔引用的新文檔的信息源;但是缺點(diǎn)是不適宜大規模搜索。
  (2)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是一種在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式。它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超鏈的HTML文件)。例如,在一個(gè)HTML文件中,當一個(gè)超鏈被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,也就是說(shuō)在搜索其余的超鏈結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超鏈走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超鏈。當不再有其他超鏈可選擇時(shí),說(shuō)明搜索早已結束。
  (3)寬度優(yōu)先搜索策略
  寬度優(yōu)先搜索的過(guò)程是先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML文件中有三個(gè)超鏈,選擇其中之一并處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超鏈,而是返回并選擇第二個(gè)超鏈,處理相應的HTML文件,再返回,選擇第三個(gè)超鏈并處理相應的HTML文件。當一層上的所有超鏈都已被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超鏈。
  寬度優(yōu)先搜索策略的優(yōu)點(diǎn):一個(gè)是保證了對淺層的優(yōu)先處理,當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí),不會(huì )造成陷進(jìn)www中的深層文檔中出現出不來(lái)的情況發(fā)生;另一個(gè)是它能在兩個(gè)HTML文件之間找到最短路徑。
  寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費比較長(cháng)的時(shí)間才會(huì )抵達深層的HTML文件。
  [編輯]
  于成龍,于洪波.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)研究[J].東莞理工學(xué)院學(xué)報.2011,5 蔡笑倫.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的發(fā)展趁機[J].科技信息.2010,12
  來(lái)自"https://wiki.mbalib.com/wiki/% ... ot%3B
  本條目對我有幫助8
  賞
  MBA智庫APP
  
  掃一掃,下載MBA智庫APP 查看全部

  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)又名“網(wǎng)絡(luò )蜘蛛”,是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)找尋網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,讀取網(wǎng)頁(yè)的內容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這種鏈接地址找尋下一個(gè)網(wǎng)頁(yè),這樣仍然循環(huán)下去,直到根據某種策略把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取完為止的技術(shù)。
  [編輯]
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。實(shí)際應用中一般是將系統幾種爬蟲(chóng)技術(shù)互相結合。
  (一)通用網(wǎng)路爬蟲(chóng)(general purpose web crawler)
  通用網(wǎng)路爬蟲(chóng)按照預先設定的一個(gè)或若干初始種子URL開(kāi)始,以此獲得初始網(wǎng)頁(yè)上的URL列表,在爬行過(guò)程中不斷從URL隊列中獲一個(gè)的URL,進(jìn)而訪(fǎng)問(wèn)并下載該頁(yè)面。頁(yè)面下載后頁(yè)面解析器除去頁(yè)面上的HTML標記后得到頁(yè)面內容,將摘要、URL等信息保存到Web數據庫中,同時(shí)抽取當前頁(yè)面上新的URL,保存到URL隊列,直到滿(mǎn)足系統停止條件。其工作流程如圖1所示。
  
  通用爬蟲(chóng)主要存在以下幾方面的局限性:1)由于抓取目標是盡可能大的覆蓋網(wǎng)路,所以爬行的結果中包含大量用戶(hù)不需要的網(wǎng)頁(yè);2)不能挺好地搜索和獲取信息濃度密集且具有一定結構的數據;3)通用搜索引擎大多是基于關(guān)鍵字的檢索,對于支持語(yǔ)義信息的查詢(xún)和索引擎智能化的要求無(wú)法實(shí)現。
  由此可見(jiàn),通用爬蟲(chóng)想在爬行網(wǎng)頁(yè)時(shí),既保證網(wǎng)頁(yè)的質(zhì)量和數目,又要保證網(wǎng)頁(yè)的時(shí)效性是很難實(shí)現的。
  (二)主題網(wǎng)路爬蟲(chóng)(Topical Web Crawler)
  1.主題爬蟲(chóng)原理
  主題爬蟲(chóng)并不追求大的覆蓋率,也不是全盤(pán)接受所有的網(wǎng)頁(yè)和URL,它按照既定的抓取目標,有選擇的訪(fǎng)問(wèn)萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接,獲取所須要的信息,不僅客服了通用爬蟲(chóng)存在的問(wèn)題,而H-返回的數據資源更精確。主題爬蟲(chóng)的基本工作原理是根據預先確定的主題,分析超鏈接和剛才抓取的網(wǎng)頁(yè)內容,獲取下一個(gè)要爬行的URL,盡可能保證多爬行與主題相關(guān)的網(wǎng)頁(yè),因此主題爬蟲(chóng)要解決以下關(guān)鍵問(wèn)題:1)如何判斷一個(gè)早已抓取的網(wǎng)頁(yè)是否與主題相關(guān);2)如何過(guò)濾掉海量的網(wǎng)頁(yè)中與主題不相關(guān)的或則相關(guān)度較低的網(wǎng)頁(yè);3)如何有目的、有控制的抓取與特定主題相關(guān)的web頁(yè)面信息;4)如何決定待訪(fǎng)問(wèn)URL的訪(fǎng)問(wèn)順序;5)如何提升主題爬蟲(chóng)的覆蓋度;6)如何協(xié)調抓取目標的描述或定義與網(wǎng)頁(yè)分析算法及候選URL排序算法之問(wèn)的關(guān)系;7)如何找尋和發(fā)覺(jué)高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源。高質(zhì)量網(wǎng)頁(yè)和關(guān)鍵資源除了可以大大提升主題爬蟲(chóng)收集Web頁(yè)面的效率和質(zhì)量,還可以為主題表示模型的優(yōu)化等應用提供支持。
  2.主題爬蟲(chóng)模塊設計
  主題爬蟲(chóng)的目標是盡可能多的發(fā)覺(jué)和收集與預定主題相關(guān)的網(wǎng)頁(yè)網(wǎng)絡(luò )爬蟲(chóng),其最大特征在于具備剖析網(wǎng)頁(yè)內容和判斷主題相關(guān)度的能力。根據主題爬蟲(chóng)的工作原理,下面設計了一個(gè)主題爬蟲(chóng)系統,主要有頁(yè)面采集模塊、頁(yè)面剖析模塊、相關(guān)度估算模塊、頁(yè)面過(guò)濾模塊和鏈接排序模塊幾部份組成網(wǎng)絡(luò )爬蟲(chóng),其總體功能模塊結構如圖2所示。
  
  頁(yè)面采集模塊:主要是依據待訪(fǎng)問(wèn)URL隊列進(jìn)行頁(yè)面下載,再交給網(wǎng)頁(yè)剖析模型處理以抽取網(wǎng)頁(yè)主題向量空間模型。該模塊是任何爬蟲(chóng)系統都必不可少的模塊。頁(yè)面剖析模塊:該模塊的功能是對采集到的頁(yè)面進(jìn)行剖析,主要用于聯(lián)接超鏈接排序模塊和頁(yè)面相關(guān)度估算模塊。
  頁(yè)面相關(guān)度估算模塊:該模塊是整個(gè)系統的核心模塊,主要用于評估與主題的相關(guān)度,并提供相關(guān)的爬行策略用以指導爬蟲(chóng)的爬行過(guò)程。URL的超鏈接評價(jià)得分越高,爬行的優(yōu)先級就越高。其主要思想是,在系統爬行之前,頁(yè)面相關(guān)度估算模塊按照用戶(hù)輸入的關(guān)鍵字和初始文本信息進(jìn)行學(xué)習,訓練一個(gè)頁(yè)面相關(guān)度評價(jià)模型。當一個(gè)被覺(jué)得是主題相關(guān)的頁(yè)面爬行出來(lái)以后,該頁(yè)面就被送入頁(yè)面相關(guān)度評價(jià)器估算其主題相關(guān)度值,若該值小于或等于給定的某儔值,則該頁(yè)面就被存入頁(yè)面庫,否則遺棄¨。頁(yè)面過(guò)濾模塊:過(guò)濾掉與主題無(wú)關(guān)的鏈接,同時(shí)將該URL及其所有蘊涵的子鏈接一并清除。通過(guò)過(guò)濾,爬蟲(chóng)就無(wú)需遍歷與主題不相關(guān)的頁(yè)面,從而保證了爬行效率。排序模塊:將過(guò)濾后頁(yè)面根據優(yōu)先級高低加入到待訪(fǎng)問(wèn)的URL隊列里。
  3.主題爬蟲(chóng)流程設計
  主題爬蟲(chóng)須要依照一定的網(wǎng)頁(yè)剖析算法,過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它會(huì )依照一定的搜索策略從待抓取的隊列中選擇下一個(gè)要抓取的URL,并重復上述過(guò)程,直到滿(mǎn)足系統停止條件為止。所有被抓取網(wǎng)頁(yè)就會(huì )被系統儲存,經(jīng)過(guò)一定的剖析、過(guò)濾,然后構建索引,以便用戶(hù)查詢(xún)和檢索;這一過(guò)程所得到的剖析結果可以對之后的抓取過(guò)程提供反饋和指導。其工作流程如圖3所示。
  
  4.深度網(wǎng)路爬蟲(chóng)(Deep Web Crawler)
  1994年Dr.jillEllsworth提出DeepWeb(深層頁(yè)面)的概念,即DeepWeb是指普通搜索引擎無(wú)法發(fā)覺(jué)的信息內容的Web頁(yè)面¨。DeepWeb中的信息量比普通的網(wǎng)頁(yè)信息量多,而且質(zhì)量更高。但是普通的搜索引擎因為技術(shù)限制而收集不到這種高質(zhì)量、高權威的信息。這些信息一般隱藏在深度Web頁(yè)面的小型動(dòng)態(tài)數據庫中,涉及數據集成、中文語(yǔ)義辨識等眾多領(lǐng)域。如此龐大的信息資源假如沒(méi)有合理的、高效的方式去獲取,將是巨大的損失。因此,對于深度網(wǎng)爬行技術(shù)的研究具有極為重大的現實(shí)意義和理論價(jià)值。
  常規的網(wǎng)路爬蟲(chóng)在運行中難以發(fā)覺(jué)隱藏在普通網(wǎng)頁(yè)中的信息和規律,缺乏一定的主動(dòng)性和智能性。比如須要輸入用戶(hù)名和密碼的頁(yè)面,或者包含頁(yè)腳導航的頁(yè)面均未能爬行。深度爬蟲(chóng)的設計針對常規網(wǎng)路爬蟲(chóng)的那些不足,將其結構做以改進(jìn),增加了表單剖析和頁(yè)面狀態(tài)保持兩個(gè)部份,其結構如圖4所示,通過(guò)剖析網(wǎng)頁(yè)的結構并將其歸類(lèi)為普通網(wǎng)頁(yè)或存在更多信息的深度網(wǎng)頁(yè),針對深度網(wǎng)頁(yè)構造合適的表單參數而且遞交,以得到更多的頁(yè)面。深度爬蟲(chóng)的流程圖如圖4所示。深度爬蟲(chóng)與常規爬蟲(chóng)的不同是,深度爬蟲(chóng)在下載完成頁(yè)面然后并沒(méi)有立刻遍歷其中的所有超鏈接,而是使用一定的算法將其進(jìn)行分類(lèi),對于不同的類(lèi)別采取不同的方式估算查詢(xún)參數,并將參數再度遞交到服務(wù)器。如果遞交的查詢(xún)參數正確,那么將會(huì )得到隱藏的頁(yè)面和鏈接。深度爬蟲(chóng)的目標是盡可能多地訪(fǎng)問(wèn)和搜集互聯(lián)網(wǎng)上的網(wǎng)頁(yè),由于深度頁(yè)面是通過(guò)遞交表單的形式訪(fǎng)問(wèn),因此爬行深度頁(yè)面存在以下三個(gè)方面的困難:1)深度爬蟲(chóng)須要有高效的算法去應對數目巨大的深層頁(yè)面數據;2)很多服務(wù)器端DeepWeb要求校準表單輸入,如用戶(hù)名、密碼、校驗碼等,如果校準失敗,將不能爬到DeepWeb數據;3)需要JavaScript等腳本支持剖析客戶(hù)端DeepWeb。
  
  [編輯]
  (1)IP地址搜索策略
  IP地址搜索策略是先給爬蟲(chóng)一個(gè)起始的IP地址,然后按照IP地址以遞增的形式搜索本IP地址段后的每一個(gè)地址中的文檔,它完全不考慮各文檔中指向其它Web站點(diǎn)的超級鏈接地址。這種搜索策略的優(yōu)點(diǎn)是搜索比較全面,因此能否發(fā)覺(jué)這些沒(méi)被其它文檔引用的新文檔的信息源;但是缺點(diǎn)是不適宜大規模搜索。
  (2)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是一種在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式。它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超鏈的HTML文件)。例如,在一個(gè)HTML文件中,當一個(gè)超鏈被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,也就是說(shuō)在搜索其余的超鏈結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超鏈走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超鏈。當不再有其他超鏈可選擇時(shí),說(shuō)明搜索早已結束。
  (3)寬度優(yōu)先搜索策略
  寬度優(yōu)先搜索的過(guò)程是先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML文件中有三個(gè)超鏈,選擇其中之一并處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超鏈,而是返回并選擇第二個(gè)超鏈,處理相應的HTML文件,再返回,選擇第三個(gè)超鏈并處理相應的HTML文件。當一層上的所有超鏈都已被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超鏈。
  寬度優(yōu)先搜索策略的優(yōu)點(diǎn):一個(gè)是保證了對淺層的優(yōu)先處理,當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí),不會(huì )造成陷進(jìn)www中的深層文檔中出現出不來(lái)的情況發(fā)生;另一個(gè)是它能在兩個(gè)HTML文件之間找到最短路徑。
  寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費比較長(cháng)的時(shí)間才會(huì )抵達深層的HTML文件。
  [編輯]
  于成龍,于洪波.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)研究[J].東莞理工學(xué)院學(xué)報.2011,5 蔡笑倫.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的發(fā)展趁機[J].科技信息.2010,12
  來(lái)自"https://wiki.mbalib.com/wiki/% ... ot%3B
  本條目對我有幫助8
  賞
  MBA智庫APP
  
  掃一掃,下載MBA智庫APP

請問(wèn)哪些是網(wǎng)絡(luò )爬蟲(chóng)???是干哪些的呢?

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 324 次瀏覽 ? 2020-05-14 08:04 ? 來(lái)自相關(guān)話(huà)題

  
  展開(kāi)全部
  爬蟲(chóng)就是才能手動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)并將網(wǎng)站內容下載出來(lái)的636f70797a686964616f31333366303235的程序或腳本,類(lèi)似一個(gè)機器人,能把他人網(wǎng)站的信息弄到自己的筆記本上,再做一些過(guò)濾,篩選,歸納,整理,排序等等。
  網(wǎng)絡(luò )爬蟲(chóng)能做哪些:數據采集。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。
  
  擴展資料:
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。 實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的 。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。 這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方法,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值 。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略 。
  1) 深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。 爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索, 但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費 。
  2) 廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面,處于較淺目錄層次的頁(yè)面首先被爬行。 當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。 這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題,實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn)爬蟲(chóng)軟件是什么,不足之處在于需較長(cháng)時(shí)間能夠爬行到目錄層次較深的頁(yè)面。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)。 和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求 。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同 。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指 對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。 和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面 ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集 。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1) 統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3) 基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè) 。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的 WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定爬蟲(chóng)軟件是什么,而是采用一種自適應的方式按照原先爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外 Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。 為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè) ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè) 。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web 是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web 頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源 。
  參考資料:
  百度百科-網(wǎng)絡(luò )爬蟲(chóng) 查看全部

  
  展開(kāi)全部
  爬蟲(chóng)就是才能手動(dòng)訪(fǎng)問(wèn)互聯(lián)網(wǎng)并將網(wǎng)站內容下載出來(lái)的636f70797a686964616f31333366303235的程序或腳本,類(lèi)似一個(gè)機器人,能把他人網(wǎng)站的信息弄到自己的筆記本上,再做一些過(guò)濾,篩選,歸納,整理,排序等等。
  網(wǎng)絡(luò )爬蟲(chóng)能做哪些:數據采集。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。
  
  擴展資料:
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。 實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的 。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。 由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。 這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方法,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值 。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略 。
  1) 深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。 爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索, 但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費 。
  2) 廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面,處于較淺目錄層次的頁(yè)面首先被爬行。 當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。 這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題,實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn)爬蟲(chóng)軟件是什么,不足之處在于需較長(cháng)時(shí)間能夠爬行到目錄層次較深的頁(yè)面。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)。 和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群對特定領(lǐng)域信息的需求 。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同 。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指 對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。 和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面 ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集 。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1) 統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3) 基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè) 。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的 WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定爬蟲(chóng)軟件是什么,而是采用一種自適應的方式按照原先爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外 Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。 為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè) ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè) 。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web 是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web 頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源 。
  參考資料:
  百度百科-網(wǎng)絡(luò )爬蟲(chóng)

推薦一些33款開(kāi)源爬蟲(chóng)軟件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 481 次瀏覽 ? 2020-05-13 08:03 ? 來(lái)自相關(guān)話(huà)題

  
  要玩大數據,沒(méi)有數據如何玩?這里推薦一些33款開(kāi)源爬蟲(chóng)軟件給你們。
  爬蟲(chóng),即網(wǎng)路爬蟲(chóng),是一種手動(dòng)獲取網(wǎng)頁(yè)內容的程序。是搜索引擎的重要組成部份,因此搜索引擎優(yōu)化很大程度上就是針對爬蟲(chóng)而作出的優(yōu)化。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。聚焦爬蟲(chóng)的工作流程較為復雜,需要按照一定的網(wǎng)頁(yè)剖析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它將按照一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復上述過(guò)程,直到達到系統的某一條件時(shí)停止。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì )被系統儲存,進(jìn)行一定的剖析、過(guò)濾,并構建索引,以便以后的查詢(xún)和檢索;對于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的剖析結果還可能對之后的抓取過(guò)程給出反饋和指導。
  世界上已然成形的爬蟲(chóng)軟件多達上百種,本文對較為著(zhù)名及常見(jiàn)的開(kāi)源爬蟲(chóng)軟件進(jìn)行梳理爬蟲(chóng)程序,按開(kāi)發(fā)語(yǔ)言進(jìn)行匯總。雖然搜索引擎也有爬蟲(chóng),但本次我匯總的只是爬蟲(chóng)軟件,而非小型、復雜的搜索引擎,因為好多兄弟只是想爬取數據,而非營(yíng)運一個(gè)搜索引擎。
  
  Java爬蟲(chóng)
  1、Arachnid
  Arachnid是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  特點(diǎn):微型爬蟲(chóng)框架,含有一個(gè)大型HTML解析器
  許可證:GPL
  2、crawlzilla
  crawlzilla 是一個(gè)幫你輕松構建搜索引擎的自由軟件,有了它,你就不用借助商業(yè)公司的搜索引擎,也不用再苦惱公司內部網(wǎng)站資料索引的問(wèn)題。
  由 nutch 專(zhuān)案為核心,并整合更多相關(guān)套件,并卡發(fā)設計安裝與管理UI,讓使用者更方便上手。
  crawlzilla不僅爬取基本的 html 外,還能剖析網(wǎng)頁(yè)上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜索引擎不只是網(wǎng)頁(yè)搜索引擎,而是網(wǎng)站的完整資料索引庫。
  擁有英文動(dòng)詞能力,讓你的搜索更精準。
  crawlzilla的特色與目標,最主要就是提供使用者一個(gè)便捷好用易安裝的搜索平臺。
  授權合同: Apache License 2
  開(kāi)發(fā)語(yǔ)言: Java SHELL
  操作系統: Linux
  項目主頁(yè):
  下載地址:
  特點(diǎn):安裝簡(jiǎn)易,擁有英文動(dòng)詞功能
  3、Ex-Crawler
  Ex-Crawler 是一個(gè)網(wǎng)頁(yè)爬蟲(chóng),采用 Java 開(kāi)發(fā),該項目分成兩部份,一個(gè)是守護進(jìn)程,另外一個(gè)是靈活可配置的 Web 爬蟲(chóng)。使用數據庫儲存網(wǎng)頁(yè)信息。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):由守護進(jìn)程執行,使用數據庫儲存網(wǎng)頁(yè)信息
  4、Heritrix
  Heritrix 是一個(gè)由 java 開(kāi)發(fā)的、開(kāi)源的網(wǎng)路爬蟲(chóng),用戶(hù)可以使用它來(lái)從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴展性,方便用戶(hù)實(shí)現自己的抓取邏輯。
  Heritrix采用的是模塊化的設計,各個(gè)模塊由一個(gè)控制器類(lèi)(CrawlController類(lèi))來(lái)協(xié)調,控制器是整體的核心。
  代碼托管:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):嚴格遵循robots文件的排除指示和META robots標簽
  5、heyDr
  
  heyDr是一款基于java的輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架,遵循GNU GPL V3合同。
  用戶(hù)可以通過(guò)heyDr建立自己的垂直資源爬蟲(chóng),用于搭建垂直搜索引擎前期的數據打算。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架
  6、ItSucks
  ItSucks是一個(gè)java web spider(web機器人,爬蟲(chóng))開(kāi)源項目。支持通過(guò)下載模板和正則表達式來(lái)定義下載規則。提供一個(gè)swing GUI操作界面。
  特點(diǎn):提供swing GUI操作界面
  7、jcrawl
  jcrawl是一款精巧性能優(yōu)良的的web爬蟲(chóng),它可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件,基于用戶(hù)定義的符號,比如email、qq。
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量、性能優(yōu)良,可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件
  8、JSpider
  JSpider是一個(gè)用Java實(shí)現的WebSpider,JSpider的執行格式如下:
  jspider [ConfigName]
  URL一定要加上合同名稱(chēng),如:,否則會(huì )報錯。如果市掉ConfigName,則采用默認配置。
  JSpider的行為是由配置文件具體配置的,比如采用哪些插件,結果儲存方法等等都在conf\[ConfigName]\目錄下設置。JSpider默認的配置種類(lèi)極少,用途也不大。但是JSpider十分容易擴充,可以借助它開(kāi)發(fā)強悍的網(wǎng)頁(yè)抓取與數據剖析工具。要做到這種,需要對JSpider的原理有深入的了解,然后按照自己的需求開(kāi)發(fā)插件,撰寫(xiě)配置文件。
  授權合同: LGPL
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能強悍,容易擴充
  9、Leopdo
  用JAVA編撰的web 搜索和爬蟲(chóng),包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  10、MetaSeeker
  是一套完整的網(wǎng)頁(yè)內容抓取、格式化、數據集成、存儲管理和搜索解決方案。
  網(wǎng)絡(luò )爬蟲(chóng)有多種實(shí)現方式,如果依照布署在哪里分,可以分成:
 ?。?)服務(wù)器側:一般是一個(gè)多線(xiàn)程程序,同時(shí)下載多個(gè)目標HTML,可以用PHP, Java, Python(當前太流行)等做,可以速率做得很快,一般綜合搜索引擎的爬蟲(chóng)這樣做。但是,如果對方厭惡爬蟲(chóng),很可能封掉你的IP,服務(wù)器IP又不容易改,另外耗損的帶寬也是很貴的。建議看一下Beautiful soap。
 ?。?)客戶(hù)端:一般實(shí)現定題爬蟲(chóng),或者是聚焦爬蟲(chóng),做綜合搜索引擎不容易成功,而垂直搜訴或則比價(jià)服務(wù)或則推薦引擎,相對容易好多,這類(lèi)爬蟲(chóng)不是哪些頁(yè)面都取的,而是只取你關(guān)系的頁(yè)面,而且只取頁(yè)面上關(guān)心的內容,例如提取黃頁(yè)信息,商品價(jià)錢(qián)信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類(lèi)爬蟲(chóng)可以布署好多,而且可以挺有侵略性,對方很難封鎖。
  MetaSeeker中的網(wǎng)路爬蟲(chóng)就屬于前者。
  MetaSeeker工具包借助Mozilla平臺的能力,只要是Firefox見(jiàn)到的東西,它都能提取。
  MetaSeeker工具包是免費使用的,下載地址:
  特點(diǎn):網(wǎng)頁(yè)抓取、信息提取、數據抽取工具包,操作簡(jiǎn)單
  11、Playfish
  playfish是一個(gè)采用java技術(shù),綜合應用多個(gè)開(kāi)源java組件實(shí)現的網(wǎng)頁(yè)抓取工具,通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性的網(wǎng)頁(yè)抓取工具
  應用開(kāi)源jar包包括httpclient(內容讀取),dom4j(配置文件解析),jericho(html解析),已經(jīng)在 war包的lib下。
  這個(gè)項目目前還挺不成熟,但是功能基本都完成了。要求使用者熟悉XML,熟悉正則表達式。目前通過(guò)這個(gè)工具可以抓取各種峰會(huì ),貼吧,以及各種CMS系統。像Discuz!,phpbb,論壇跟博客的文章,通過(guò)本工具都可以輕松抓取。抓取定義完全采用XML,適合Java開(kāi)發(fā)人員使用。
  使用方式:1.下載一側的.war包導出到eclipse中, 2.使用WebContent/sql下的wcc.sql文件構建一個(gè)范例數據庫, 3.修改src包下wcc.core的dbConfig.txt,將用戶(hù)名與密碼設置成你自己的mysql用戶(hù)名密碼。 4.然后運行SystemCore,運行時(shí)侯會(huì )在控制臺,無(wú)參數會(huì )執行默認的example.xml的配置文件,帶參數時(shí)侯名稱(chēng)為配置文件名。
  系統自帶了3個(gè)事例,分別為baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一個(gè)采用 discuz峰會(huì )的內容。
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性
  12、Spiderman
  Spiderman 是一個(gè)基于微內核+插件式構架的網(wǎng)路蜘蛛,它的目標是通過(guò)簡(jiǎn)單的方式能夠將復雜的目標網(wǎng)頁(yè)信息抓取并解析為自己所須要的業(yè)務(wù)數據。
  怎么使用?
  首先,確定好你的目標網(wǎng)站以及目標網(wǎng)頁(yè)(即某一類(lèi)你想要獲取數據的網(wǎng)頁(yè),例如網(wǎng)易新聞的新聞頁(yè)面)
  然后,打開(kāi)目標頁(yè)面,分析頁(yè)面的HTML結構,得到你想要數據的XPath,具體XPath如何獲取請看下文。
  最后,在一個(gè)xml配置文件里填寫(xiě)好參數,運行Spiderman吧!
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):靈活、擴展性強,微內核+插件式構架,通過(guò)簡(jiǎn)單的配置就可以完成數據抓取,無(wú)需編撰一句代碼
  13、webmagic
  webmagic的是一個(gè)無(wú)須配置、便于二次開(kāi)發(fā)的爬蟲(chóng)框架,它提供簡(jiǎn)單靈活的API,只需少量代碼即可實(shí)現一個(gè)爬蟲(chóng)。
  
  webmagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
  
  webmagic包含強悍的頁(yè)面抽取功能,開(kāi)發(fā)者可以方便的使用css selector、xpath和正則表達式進(jìn)行鏈接和內容的提取,支持多個(gè)選擇器鏈式調用。
  webmagic的使用文檔:
  查看源代碼:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能覆蓋整個(gè)爬蟲(chóng)生命周期,使用Xpath和正則表達式進(jìn)行鏈接和內容的提取。
  備注:這是一款國產(chǎn)開(kāi)源軟件,由黃億華貢獻
  14、Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  其實(shí)現原理是,根據預先定義的配置文件用httpclient獲取頁(yè)面的全部?jì)热荩P(guān)于httpclient的內容,本博有些文章已介紹),然后運用XPath、XQuery、正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是采用類(lèi)似的原理實(shí)現的。Web-Harvest應用,關(guān)鍵就是理解和定義配置文件,其他的就是考慮如何處理數據的Java代碼。當然在爬蟲(chóng)開(kāi)始前,也可以把Java變量填充到配置文件中,實(shí)現動(dòng)態(tài)的配置。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Java
  特點(diǎn):運用XSLT、XQuery、正則表達式等技術(shù)來(lái)實(shí)現對Text或XML的操作,具有可視化的界面
  15、WebSPHINX
  WebSPHINX是一個(gè)Java類(lèi)包和Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。Web爬蟲(chóng)(也叫作機器人或蜘蛛)是可以手動(dòng)瀏覽與處理Web頁(yè)面的程序。WebSPHINX由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包。
  授權合同:Apache
  開(kāi)發(fā)語(yǔ)言:Java
  特點(diǎn):由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包
  16、YaCy
  YaCy基于p2p的分布式Web搜索引擎.同時(shí)也是一個(gè)Http緩存代理服務(wù)器.這個(gè)項目是建立基于p2p Web索引網(wǎng)路的一個(gè)新技巧.它可以搜索你自己的或全局的索引,也可以Crawl自己的網(wǎng)頁(yè)或啟動(dòng)分布式Crawling等.
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: Java Perl
  操作系統:跨平臺
  特點(diǎn):基于P2P的分布式Web搜索引擎
  Python爬蟲(chóng)
  17、QuickRecon
  QuickRecon是一個(gè)簡(jiǎn)單的信息搜集工具,它可以幫助你查找子域名名稱(chēng)、perform zone transfe、收集電子郵件地址和使用microformats找尋人際關(guān)系等。QuickRecon使用python編撰,支持linux和 windows操作系統。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統: Windows Linux
  特點(diǎn):具有查找子域名名稱(chēng)、收集電子郵件地址并找尋人際關(guān)系等功能
  18、PyRailgun
  這是一個(gè)十分簡(jiǎn)單易用的抓取工具。支持抓取javascript渲染的頁(yè)面的簡(jiǎn)單實(shí)用高效的python網(wǎng)頁(yè)爬蟲(chóng)抓取模塊
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺 Windows Linux OS X
  特點(diǎn):簡(jiǎn)潔、輕量、高效的網(wǎng)頁(yè)抓取框架
  備注:此軟件也是由國人開(kāi)放
  github下載:
  #readme
  19、Scrapy
  Scrapy 是一套基于基于Twisted的異步處理框架,純python實(shí)現的爬蟲(chóng)框架,用戶(hù)只須要訂制開(kāi)發(fā)幾個(gè)模塊就可以輕松的實(shí)現一個(gè)爬蟲(chóng),用來(lái)抓取網(wǎng)頁(yè)內容以及各類(lèi)圖片,非常之便捷~
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺
  github源代碼:
  特點(diǎn):基于Twisted的異步處理框架,文檔齊全
  C++++爬蟲(chóng)
  20、hispider
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架,沒(méi)有細化需求,目前只是能提取URL, URL排重,異步DNS解析,隊列化任務(wù),支持N機分布式下載,支持網(wǎng)站定向下載(需要配置hispiderd.ini whitelist).
  特征和用法:
  基于unix/linux系統的開(kāi)發(fā)
  異步DNS解析
  URL排重
  支持HTTP 壓縮編碼傳輸 gzip/deflate
  字符集判定手動(dòng)轉換成UTF-8編碼
  文檔壓縮儲存
  支持多下載節點(diǎn)分布式下載
  支持網(wǎng)站定向下載(需要配置 hispiderd.ini whitelist )
  可通過(guò) :3721/查看下載情況統計,下載任務(wù)控制(可停止和恢復任務(wù))
  依賴(lài)基本通訊庫libevbase 和 libsbase (安裝的時(shí)侯須要先安裝這個(gè)兩個(gè)庫).
  工作流程:
  從中心節點(diǎn)取URL(包括URL對應的任務(wù)號, IP和port,也可能須要自己解析)
  連接服務(wù)器發(fā)送懇求
  等待數據頭判定是否須要的數據(目前主要取text類(lèi)型的數據)
  等待完成數據(有length頭的直接等待說(shuō)明寬度的數據否則等待比較大的數字之后設置超時(shí))
  數據完成或則超時(shí), zlib壓縮數據返回給中心服務(wù)器,數據可能包括自己解析DNS信息,壓縮后數據寬度+壓縮后數據,如果出錯就直接返回任務(wù)號以及相關(guān)信息
  中心服務(wù)器收到帶有任務(wù)號的數據,查看是否包括數據,如果沒(méi)有數據直接置任務(wù)號對應的狀態(tài)為錯誤,如果有數據提取數據種link 然后儲存數據到文檔文件.
  完成后返回一個(gè)新的任務(wù).
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):支持多機分布式下載,支持網(wǎng)站定向下載
  21、larbin
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè)。
  利用larbin,我們可以輕易的獲取/確定單個(gè)網(wǎng)站的所有鏈接,甚至可以鏡像一個(gè)網(wǎng)站;也可以用它構建url 列表群,例如針對所有的網(wǎng)頁(yè)進(jìn)行 url retrive后,進(jìn)行xml的連結的獲取?;蛘呤?mp3,或者訂制larbin,可以作為搜索引擎的信息的來(lái)源。
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):高性能的爬蟲(chóng)軟件,只負責抓取不負責解析
  22、Methabot
  Methabot 是一個(gè)經(jīng)過(guò)速率優(yōu)化的高可配置的 WEB、FTP、本地文件系統的爬蟲(chóng)軟件。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Windows Linux
  特點(diǎn):過(guò)速率優(yōu)化、可抓取WEB、FTP及本地文件系統
  源代碼:
  爬蟲(chóng)
  23、NWebCrawler
  NWebCrawler是一款開(kāi)源,C#開(kāi)發(fā)網(wǎng)路爬蟲(chóng)程序。
  特性:
  可配置:線(xiàn)程數,等待時(shí)間,連接超時(shí),允許MIME類(lèi)型和優(yōu)先級,下載文件夾。
  統計信息:URL數目,總下載文件,總下載字節數,CPU利用率和可用顯存。
  Preferential crawler:用戶(hù)可以設置優(yōu)先級的MIME類(lèi)型。
  Robust: 10+ URL normalization rules, crawler trap avoiding rules.
  授權合同: GPLv2
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  項目主頁(yè):
  特點(diǎn):統計信息、執行過(guò)程可視化
  24、Sinawler
  國內第一個(gè)針對微博數據的爬蟲(chóng)程序!原名“新浪微博爬蟲(chóng)”。
  登錄后,可以指定用戶(hù)為起點(diǎn),以該用戶(hù)的關(guān)注人、粉絲為線(xiàn)索,延人脈關(guān)系收集用戶(hù)基本信息、微博數據、評論數據。
  該應用獲取的數據可作為科研、與新浪微博相關(guān)的研制等的數據支持,但切勿用于商業(yè)用途。該應用基于.NET2.0框架,需SQL SERVER作為后臺數據庫,并提供了針對SQL Server的數據庫腳本文件。
  另外爬蟲(chóng)程序,由于新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數目的限制、獲取微博數目的限制等)
  本程序版權歸作者所有。你可以免費:拷貝、分發(fā)、呈現和演出當前作品,制作派生作品。你不可將當前作品用于商業(yè)目的。
  5.x版本早已發(fā)布!該版本共有6個(gè)后臺工作線(xiàn)程:爬取用戶(hù)基本信息的機器人、爬取用戶(hù)關(guān)系的機器人、爬取用戶(hù)標簽的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節懇求頻度的機器人。更高的性能!最大限度挖掘爬蟲(chóng)潛力!以現今測試的結果看,已經(jīng)才能滿(mǎn)足自用。
  本程序的特征:
  6個(gè)后臺工作線(xiàn)程,最大限度挖掘爬蟲(chóng)性能潛力!
  界面上提供參數設置,靈活便捷
  拋棄app.config配置文件,自己實(shí)現配置信息的加密儲存,保護數據庫賬號信息
  自動(dòng)調整懇求頻度,防止超限,也防止過(guò)慢,降低效率
  任意對爬蟲(chóng)控制,可隨時(shí)暫停、繼續、停止爬蟲(chóng)
  良好的用戶(hù)體驗
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  25、spidernet
  spidernet是一個(gè)以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持text/html資源的獲取.可以設定爬行深度,最大下載字節數限制,支持gzip解碼,支持以gbk(gb2312)和utf8編碼的資源;存儲于sqlite數據文件.
  源碼中TODO:標記描述了未完成功能,希望遞交你的代碼.
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  github源代碼:
  特點(diǎn):以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持以GBK (gb2312)和utf8編碼的資源,使用sqlite儲存數據
  26、Web Crawler
  mart and Simple Web Crawler是一個(gè)Web爬蟲(chóng)框架。集成Lucene支持。該爬蟲(chóng)可以從單個(gè)鏈接或一個(gè)鏈接字段開(kāi)始,提供兩種遍歷模式:最大迭代和最大深度??梢栽O置過(guò)濾器限制爬回去的鏈接,默認提供三個(gè)過(guò)濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個(gè)過(guò)濾器可用AND、OR和NOT聯(lián)合。在解析過(guò)程或頁(yè)面加載前后都可以加監聽(tīng)器。介紹內容來(lái)自Open-Open
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  授權合同: LGPL
  特點(diǎn):多線(xiàn)程,支持抓取PDF/DOC/EXCEL等文檔來(lái)源
  27、網(wǎng)絡(luò )礦工
  網(wǎng)站數據采集軟件網(wǎng)路礦工[url=http://www.hqbet6457.com/]采集器(原soukey采摘)
  Soukey采摘網(wǎng)站數據采集軟件是一款基于.Net平臺的開(kāi)源軟件,也是網(wǎng)站數據采集軟件類(lèi)型中惟一一款開(kāi)源軟件。盡管Soukey采摘開(kāi)源,但并不會(huì )影響軟件功能的提供,甚至要比一些商用軟件的功能還要豐富。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  特點(diǎn):功能豐富,毫不遜色于商業(yè)軟件
  PHP爬蟲(chóng)
  28、OpenWebSpider
  OpenWebSpider是一個(gè)開(kāi)源多線(xiàn)程Web Spider(robot:機器人,crawler:爬蟲(chóng))和包含許多有趣功能的搜索引擎。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):開(kāi)源多線(xiàn)程網(wǎng)絡(luò )爬蟲(chóng),有許多有趣的功能
  29、PhpDig
  PhpDig是一個(gè)采用PHP開(kāi)發(fā)的Web爬蟲(chóng)和搜索引擎。通過(guò)對動(dòng)態(tài)和靜態(tài)頁(yè)面進(jìn)行索引構建一個(gè)詞匯表。當搜索查詢(xún)時(shí),它將按一定的排序規則顯示包含關(guān)鍵字的搜索結果頁(yè)面。PhpDig包含一個(gè)模板系統并才能索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用于專(zhuān)業(yè)化更強、層次更深的個(gè)性化搜索引擎,利用它構建針對某一領(lǐng)域的垂直搜索引擎是最好的選擇。
  演示:
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):具有采集網(wǎng)頁(yè)內容、提交表單功能
  30、ThinkUp
  ThinkUp 是一個(gè)可以采集推特,facebook等社交網(wǎng)路數據的社會(huì )媒體視角引擎。通過(guò)采集個(gè)人的社交網(wǎng)絡(luò )帳號中的數據,對其存檔以及處理的交互剖析工具,并將數據圖形化便于更直觀(guān)的查看。
  
  
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  github源碼:
  特點(diǎn):采集推特、臉譜等社交網(wǎng)路數據的社會(huì )媒體視角引擎,可進(jìn)行交互剖析并將結果以可視化方式詮釋
  31、微購
  微購社會(huì )化購物系統是一款基于ThinkPHP框架開(kāi)發(fā)的開(kāi)源的購物分享系統,同時(shí)它也是一套針對站長(cháng)、開(kāi)源的的淘寶客網(wǎng)站程序,它整合了天貓、天貓、淘寶客等300多家商品數據采集接口,為廣大的淘寶客站長(cháng)提供傻瓜式淘客建站服務(wù),會(huì )HTML都會(huì )做程序模板,免費開(kāi)放下載,是廣大淘客站長(cháng)的首選。 查看全部

  
  要玩大數據,沒(méi)有數據如何玩?這里推薦一些33款開(kāi)源爬蟲(chóng)軟件給你們。
  爬蟲(chóng),即網(wǎng)路爬蟲(chóng),是一種手動(dòng)獲取網(wǎng)頁(yè)內容的程序。是搜索引擎的重要組成部份,因此搜索引擎優(yōu)化很大程度上就是針對爬蟲(chóng)而作出的優(yōu)化。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當前頁(yè)面上抽取新的URL裝入隊列,直到滿(mǎn)足系統的一定停止條件。聚焦爬蟲(chóng)的工作流程較為復雜,需要按照一定的網(wǎng)頁(yè)剖析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其倒入等待抓取的URL隊列。然后,它將按照一定的搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁(yè)URL,并重復上述過(guò)程,直到達到系統的某一條件時(shí)停止。另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì )被系統儲存,進(jìn)行一定的剖析、過(guò)濾,并構建索引,以便以后的查詢(xún)和檢索;對于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的剖析結果還可能對之后的抓取過(guò)程給出反饋和指導。
  世界上已然成形的爬蟲(chóng)軟件多達上百種,本文對較為著(zhù)名及常見(jiàn)的開(kāi)源爬蟲(chóng)軟件進(jìn)行梳理爬蟲(chóng)程序,按開(kāi)發(fā)語(yǔ)言進(jìn)行匯總。雖然搜索引擎也有爬蟲(chóng),但本次我匯總的只是爬蟲(chóng)軟件,而非小型、復雜的搜索引擎,因為好多兄弟只是想爬取數據,而非營(yíng)運一個(gè)搜索引擎。
  
  Java爬蟲(chóng)
  1、Arachnid
  Arachnid是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器才能剖析包含HTML內容的輸入流.通過(guò)實(shí)現Arachnid的泛型才能夠開(kāi)發(fā)一個(gè)簡(jiǎn)單的Web spiders并才能在Web站上的每位頁(yè)面被解析然后降低幾行代碼調用。 Arachnid的下載包中包含兩個(gè)spider應用程序事例用于演示怎么使用該框架。
  特點(diǎn):微型爬蟲(chóng)框架,含有一個(gè)大型HTML解析器
  許可證:GPL
  2、crawlzilla
  crawlzilla 是一個(gè)幫你輕松構建搜索引擎的自由軟件,有了它,你就不用借助商業(yè)公司的搜索引擎,也不用再苦惱公司內部網(wǎng)站資料索引的問(wèn)題。
  由 nutch 專(zhuān)案為核心,并整合更多相關(guān)套件,并卡發(fā)設計安裝與管理UI,讓使用者更方便上手。
  crawlzilla不僅爬取基本的 html 外,還能剖析網(wǎng)頁(yè)上的文件,如( doc、pdf、ppt、ooo、rss )等多種文件格式,讓你的搜索引擎不只是網(wǎng)頁(yè)搜索引擎,而是網(wǎng)站的完整資料索引庫。
  擁有英文動(dòng)詞能力,讓你的搜索更精準。
  crawlzilla的特色與目標,最主要就是提供使用者一個(gè)便捷好用易安裝的搜索平臺。
  授權合同: Apache License 2
  開(kāi)發(fā)語(yǔ)言: Java SHELL
  操作系統: Linux
  項目主頁(yè):
  下載地址:
  特點(diǎn):安裝簡(jiǎn)易,擁有英文動(dòng)詞功能
  3、Ex-Crawler
  Ex-Crawler 是一個(gè)網(wǎng)頁(yè)爬蟲(chóng),采用 Java 開(kāi)發(fā),該項目分成兩部份,一個(gè)是守護進(jìn)程,另外一個(gè)是靈活可配置的 Web 爬蟲(chóng)。使用數據庫儲存網(wǎng)頁(yè)信息。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):由守護進(jìn)程執行,使用數據庫儲存網(wǎng)頁(yè)信息
  4、Heritrix
  Heritrix 是一個(gè)由 java 開(kāi)發(fā)的、開(kāi)源的網(wǎng)路爬蟲(chóng),用戶(hù)可以使用它來(lái)從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴展性,方便用戶(hù)實(shí)現自己的抓取邏輯。
  Heritrix采用的是模塊化的設計,各個(gè)模塊由一個(gè)控制器類(lèi)(CrawlController類(lèi))來(lái)協(xié)調,控制器是整體的核心。
  代碼托管:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):嚴格遵循robots文件的排除指示和META robots標簽
  5、heyDr
  
  heyDr是一款基于java的輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架,遵循GNU GPL V3合同。
  用戶(hù)可以通過(guò)heyDr建立自己的垂直資源爬蟲(chóng),用于搭建垂直搜索引擎前期的數據打算。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量級開(kāi)源多線(xiàn)程垂直檢索爬蟲(chóng)框架
  6、ItSucks
  ItSucks是一個(gè)java web spider(web機器人,爬蟲(chóng))開(kāi)源項目。支持通過(guò)下載模板和正則表達式來(lái)定義下載規則。提供一個(gè)swing GUI操作界面。
  特點(diǎn):提供swing GUI操作界面
  7、jcrawl
  jcrawl是一款精巧性能優(yōu)良的的web爬蟲(chóng),它可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件,基于用戶(hù)定義的符號,比如email、qq。
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):輕量、性能優(yōu)良,可以從網(wǎng)頁(yè)抓取各類(lèi)類(lèi)型的文件
  8、JSpider
  JSpider是一個(gè)用Java實(shí)現的WebSpider,JSpider的執行格式如下:
  jspider [ConfigName]
  URL一定要加上合同名稱(chēng),如:,否則會(huì )報錯。如果市掉ConfigName,則采用默認配置。
  JSpider的行為是由配置文件具體配置的,比如采用哪些插件,結果儲存方法等等都在conf\[ConfigName]\目錄下設置。JSpider默認的配置種類(lèi)極少,用途也不大。但是JSpider十分容易擴充,可以借助它開(kāi)發(fā)強悍的網(wǎng)頁(yè)抓取與數據剖析工具。要做到這種,需要對JSpider的原理有深入的了解,然后按照自己的需求開(kāi)發(fā)插件,撰寫(xiě)配置文件。
  授權合同: LGPL
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能強悍,容易擴充
  9、Leopdo
  用JAVA編撰的web 搜索和爬蟲(chóng),包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):包括全文和分類(lèi)垂直搜索,以及動(dòng)詞系統
  10、MetaSeeker
  是一套完整的網(wǎng)頁(yè)內容抓取、格式化、數據集成、存儲管理和搜索解決方案。
  網(wǎng)絡(luò )爬蟲(chóng)有多種實(shí)現方式,如果依照布署在哪里分,可以分成:
 ?。?)服務(wù)器側:一般是一個(gè)多線(xiàn)程程序,同時(shí)下載多個(gè)目標HTML,可以用PHP, Java, Python(當前太流行)等做,可以速率做得很快,一般綜合搜索引擎的爬蟲(chóng)這樣做。但是,如果對方厭惡爬蟲(chóng),很可能封掉你的IP,服務(wù)器IP又不容易改,另外耗損的帶寬也是很貴的。建議看一下Beautiful soap。
 ?。?)客戶(hù)端:一般實(shí)現定題爬蟲(chóng),或者是聚焦爬蟲(chóng),做綜合搜索引擎不容易成功,而垂直搜訴或則比價(jià)服務(wù)或則推薦引擎,相對容易好多,這類(lèi)爬蟲(chóng)不是哪些頁(yè)面都取的,而是只取你關(guān)系的頁(yè)面,而且只取頁(yè)面上關(guān)心的內容,例如提取黃頁(yè)信息,商品價(jià)錢(qián)信息,還有提取競爭對手廣告信息的,搜一下Spyfu,很有趣。這類(lèi)爬蟲(chóng)可以布署好多,而且可以挺有侵略性,對方很難封鎖。
  MetaSeeker中的網(wǎng)路爬蟲(chóng)就屬于前者。
  MetaSeeker工具包借助Mozilla平臺的能力,只要是Firefox見(jiàn)到的東西,它都能提取。
  MetaSeeker工具包是免費使用的,下載地址:
  特點(diǎn):網(wǎng)頁(yè)抓取、信息提取、數據抽取工具包,操作簡(jiǎn)單
  11、Playfish
  playfish是一個(gè)采用java技術(shù),綜合應用多個(gè)開(kāi)源java組件實(shí)現的網(wǎng)頁(yè)抓取工具,通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性的網(wǎng)頁(yè)抓取工具
  應用開(kāi)源jar包包括httpclient(內容讀取),dom4j(配置文件解析),jericho(html解析),已經(jīng)在 war包的lib下。
  這個(gè)項目目前還挺不成熟,但是功能基本都完成了。要求使用者熟悉XML,熟悉正則表達式。目前通過(guò)這個(gè)工具可以抓取各種峰會(huì ),貼吧,以及各種CMS系統。像Discuz!,phpbb,論壇跟博客的文章,通過(guò)本工具都可以輕松抓取。抓取定義完全采用XML,適合Java開(kāi)發(fā)人員使用。
  使用方式:1.下載一側的.war包導出到eclipse中, 2.使用WebContent/sql下的wcc.sql文件構建一個(gè)范例數據庫, 3.修改src包下wcc.core的dbConfig.txt,將用戶(hù)名與密碼設置成你自己的mysql用戶(hù)名密碼。 4.然后運行SystemCore,運行時(shí)侯會(huì )在控制臺,無(wú)參數會(huì )執行默認的example.xml的配置文件,帶參數時(shí)侯名稱(chēng)為配置文件名。
  系統自帶了3個(gè)事例,分別為baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一個(gè)采用 discuz峰會(huì )的內容。
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):通過(guò)XML配置文件實(shí)現高度可定制性與可擴展性
  12、Spiderman
  Spiderman 是一個(gè)基于微內核+插件式構架的網(wǎng)路蜘蛛,它的目標是通過(guò)簡(jiǎn)單的方式能夠將復雜的目標網(wǎng)頁(yè)信息抓取并解析為自己所須要的業(yè)務(wù)數據。
  怎么使用?
  首先,確定好你的目標網(wǎng)站以及目標網(wǎng)頁(yè)(即某一類(lèi)你想要獲取數據的網(wǎng)頁(yè),例如網(wǎng)易新聞的新聞頁(yè)面)
  然后,打開(kāi)目標頁(yè)面,分析頁(yè)面的HTML結構,得到你想要數據的XPath,具體XPath如何獲取請看下文。
  最后,在一個(gè)xml配置文件里填寫(xiě)好參數,運行Spiderman吧!
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):靈活、擴展性強,微內核+插件式構架,通過(guò)簡(jiǎn)單的配置就可以完成數據抓取,無(wú)需編撰一句代碼
  13、webmagic
  webmagic的是一個(gè)無(wú)須配置、便于二次開(kāi)發(fā)的爬蟲(chóng)框架,它提供簡(jiǎn)單靈活的API,只需少量代碼即可實(shí)現一個(gè)爬蟲(chóng)。
  
  webmagic采用完全模塊化的設計,功能覆蓋整個(gè)爬蟲(chóng)的生命周期(鏈接提取、頁(yè)面下載、內容抽取、持久化),支持多線(xiàn)程抓取,分布式抓取,并支持手動(dòng)重試、自定義UA/cookie等功能。
  
  webmagic包含強悍的頁(yè)面抽取功能,開(kāi)發(fā)者可以方便的使用css selector、xpath和正則表達式進(jìn)行鏈接和內容的提取,支持多個(gè)選擇器鏈式調用。
  webmagic的使用文檔:
  查看源代碼:
  授權合同: Apache
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  特點(diǎn):功能覆蓋整個(gè)爬蟲(chóng)生命周期,使用Xpath和正則表達式進(jìn)行鏈接和內容的提取。
  備注:這是一款國產(chǎn)開(kāi)源軟件,由黃億華貢獻
  14、Web-Harvest
  Web-Harvest是一個(gè)Java開(kāi)源Web數據抽取工具。它就能搜集指定的Web頁(yè)面并從這種頁(yè)面中提取有用的數據。Web-Harvest主要是運用了象XSLT,XQuery,正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的操作。
  其實(shí)現原理是,根據預先定義的配置文件用httpclient獲取頁(yè)面的全部?jì)热荩P(guān)于httpclient的內容,本博有些文章已介紹),然后運用XPath、XQuery、正則表達式等這種技術(shù)來(lái)實(shí)現對text/xml的內容篩選操作,選取精確的數據。前兩年比較火的垂直搜索(比如:酷訊等)也是采用類(lèi)似的原理實(shí)現的。Web-Harvest應用,關(guān)鍵就是理解和定義配置文件,其他的就是考慮如何處理數據的Java代碼。當然在爬蟲(chóng)開(kāi)始前,也可以把Java變量填充到配置文件中,實(shí)現動(dòng)態(tài)的配置。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Java
  特點(diǎn):運用XSLT、XQuery、正則表達式等技術(shù)來(lái)實(shí)現對Text或XML的操作,具有可視化的界面
  15、WebSPHINX
  WebSPHINX是一個(gè)Java類(lèi)包和Web爬蟲(chóng)的交互式開(kāi)發(fā)環(huán)境。Web爬蟲(chóng)(也叫作機器人或蜘蛛)是可以手動(dòng)瀏覽與處理Web頁(yè)面的程序。WebSPHINX由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包。
  授權合同:Apache
  開(kāi)發(fā)語(yǔ)言:Java
  特點(diǎn):由兩部份組成:爬蟲(chóng)工作平臺和WebSPHINX類(lèi)包
  16、YaCy
  YaCy基于p2p的分布式Web搜索引擎.同時(shí)也是一個(gè)Http緩存代理服務(wù)器.這個(gè)項目是建立基于p2p Web索引網(wǎng)路的一個(gè)新技巧.它可以搜索你自己的或全局的索引,也可以Crawl自己的網(wǎng)頁(yè)或啟動(dòng)分布式Crawling等.
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: Java Perl
  操作系統:跨平臺
  特點(diǎn):基于P2P的分布式Web搜索引擎
  Python爬蟲(chóng)
  17、QuickRecon
  QuickRecon是一個(gè)簡(jiǎn)單的信息搜集工具,它可以幫助你查找子域名名稱(chēng)、perform zone transfe、收集電子郵件地址和使用microformats找尋人際關(guān)系等。QuickRecon使用python編撰,支持linux和 windows操作系統。
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統: Windows Linux
  特點(diǎn):具有查找子域名名稱(chēng)、收集電子郵件地址并找尋人際關(guān)系等功能
  18、PyRailgun
  這是一個(gè)十分簡(jiǎn)單易用的抓取工具。支持抓取javascript渲染的頁(yè)面的簡(jiǎn)單實(shí)用高效的python網(wǎng)頁(yè)爬蟲(chóng)抓取模塊
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺 Windows Linux OS X
  特點(diǎn):簡(jiǎn)潔、輕量、高效的網(wǎng)頁(yè)抓取框架
  備注:此軟件也是由國人開(kāi)放
  github下載:
  #readme
  19、Scrapy
  Scrapy 是一套基于基于Twisted的異步處理框架,純python實(shí)現的爬蟲(chóng)框架,用戶(hù)只須要訂制開(kāi)發(fā)幾個(gè)模塊就可以輕松的實(shí)現一個(gè)爬蟲(chóng),用來(lái)抓取網(wǎng)頁(yè)內容以及各類(lèi)圖片,非常之便捷~
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: Python
  操作系統:跨平臺
  github源代碼:
  特點(diǎn):基于Twisted的異步處理框架,文檔齊全
  C++++爬蟲(chóng)
  20、hispider
  HiSpider is a fast and high performance spider with high speed
  嚴格說(shuō)只能是一個(gè)spider系統的框架,沒(méi)有細化需求,目前只是能提取URL, URL排重,異步DNS解析,隊列化任務(wù),支持N機分布式下載,支持網(wǎng)站定向下載(需要配置hispiderd.ini whitelist).
  特征和用法:
  基于unix/linux系統的開(kāi)發(fā)
  異步DNS解析
  URL排重
  支持HTTP 壓縮編碼傳輸 gzip/deflate
  字符集判定手動(dòng)轉換成UTF-8編碼
  文檔壓縮儲存
  支持多下載節點(diǎn)分布式下載
  支持網(wǎng)站定向下載(需要配置 hispiderd.ini whitelist )
  可通過(guò) :3721/查看下載情況統計,下載任務(wù)控制(可停止和恢復任務(wù))
  依賴(lài)基本通訊庫libevbase 和 libsbase (安裝的時(shí)侯須要先安裝這個(gè)兩個(gè)庫).
  工作流程:
  從中心節點(diǎn)取URL(包括URL對應的任務(wù)號, IP和port,也可能須要自己解析)
  連接服務(wù)器發(fā)送懇求
  等待數據頭判定是否須要的數據(目前主要取text類(lèi)型的數據)
  等待完成數據(有length頭的直接等待說(shuō)明寬度的數據否則等待比較大的數字之后設置超時(shí))
  數據完成或則超時(shí), zlib壓縮數據返回給中心服務(wù)器,數據可能包括自己解析DNS信息,壓縮后數據寬度+壓縮后數據,如果出錯就直接返回任務(wù)號以及相關(guān)信息
  中心服務(wù)器收到帶有任務(wù)號的數據,查看是否包括數據,如果沒(méi)有數據直接置任務(wù)號對應的狀態(tài)為錯誤,如果有數據提取數據種link 然后儲存數據到文檔文件.
  完成后返回一個(gè)新的任務(wù).
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):支持多機分布式下載,支持網(wǎng)站定向下載
  21、larbin
  larbin是一種開(kāi)源的網(wǎng)路爬蟲(chóng)/網(wǎng)路蜘蛛,由美國的年輕人 Sébastien Ailleret獨立開(kāi)發(fā)。larbin目的是能否跟蹤頁(yè)面的url進(jìn)行擴充的抓取,最后為搜索引擎提供廣泛的數據來(lái)源。Larbin只是一個(gè)爬蟲(chóng),也就是說(shuō)larbin只抓取網(wǎng)頁(yè),至于怎樣parse的事情則由用戶(hù)自己完成。另外,如何儲存到數據庫以及完善索引的事情 larbin也不提供。一個(gè)簡(jiǎn)單的larbin的爬蟲(chóng)可以每晚獲?。担埃叭f(wàn)的網(wǎng)頁(yè)。
  利用larbin,我們可以輕易的獲取/確定單個(gè)網(wǎng)站的所有鏈接,甚至可以鏡像一個(gè)網(wǎng)站;也可以用它構建url 列表群,例如針對所有的網(wǎng)頁(yè)進(jìn)行 url retrive后,進(jìn)行xml的連結的獲取?;蛘呤?mp3,或者訂制larbin,可以作為搜索引擎的信息的來(lái)源。
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Linux
  特點(diǎn):高性能的爬蟲(chóng)軟件,只負責抓取不負責解析
  22、Methabot
  Methabot 是一個(gè)經(jīng)過(guò)速率優(yōu)化的高可配置的 WEB、FTP、本地文件系統的爬蟲(chóng)軟件。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: C/C++
  操作系統: Windows Linux
  特點(diǎn):過(guò)速率優(yōu)化、可抓取WEB、FTP及本地文件系統
  源代碼:
  爬蟲(chóng)
  23、NWebCrawler
  NWebCrawler是一款開(kāi)源,C#開(kāi)發(fā)網(wǎng)路爬蟲(chóng)程序。
  特性:
  可配置:線(xiàn)程數,等待時(shí)間,連接超時(shí),允許MIME類(lèi)型和優(yōu)先級,下載文件夾。
  統計信息:URL數目,總下載文件,總下載字節數,CPU利用率和可用顯存。
  Preferential crawler:用戶(hù)可以設置優(yōu)先級的MIME類(lèi)型。
  Robust: 10+ URL normalization rules, crawler trap avoiding rules.
  授權合同: GPLv2
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  項目主頁(yè):
  特點(diǎn):統計信息、執行過(guò)程可視化
  24、Sinawler
  國內第一個(gè)針對微博數據的爬蟲(chóng)程序!原名“新浪微博爬蟲(chóng)”。
  登錄后,可以指定用戶(hù)為起點(diǎn),以該用戶(hù)的關(guān)注人、粉絲為線(xiàn)索,延人脈關(guān)系收集用戶(hù)基本信息、微博數據、評論數據。
  該應用獲取的數據可作為科研、與新浪微博相關(guān)的研制等的數據支持,但切勿用于商業(yè)用途。該應用基于.NET2.0框架,需SQL SERVER作為后臺數據庫,并提供了針對SQL Server的數據庫腳本文件。
  另外爬蟲(chóng)程序,由于新浪微博API的限制,爬取的數據可能不夠完整(如獲取粉絲數目的限制、獲取微博數目的限制等)
  本程序版權歸作者所有。你可以免費:拷貝、分發(fā)、呈現和演出當前作品,制作派生作品。你不可將當前作品用于商業(yè)目的。
  5.x版本早已發(fā)布!該版本共有6個(gè)后臺工作線(xiàn)程:爬取用戶(hù)基本信息的機器人、爬取用戶(hù)關(guān)系的機器人、爬取用戶(hù)標簽的機器人、爬取微博內容的機器人、爬取微博評論的機器人,以及調節懇求頻度的機器人。更高的性能!最大限度挖掘爬蟲(chóng)潛力!以現今測試的結果看,已經(jīng)才能滿(mǎn)足自用。
  本程序的特征:
  6個(gè)后臺工作線(xiàn)程,最大限度挖掘爬蟲(chóng)性能潛力!
  界面上提供參數設置,靈活便捷
  拋棄app.config配置文件,自己實(shí)現配置信息的加密儲存,保護數據庫賬號信息
  自動(dòng)調整懇求頻度,防止超限,也防止過(guò)慢,降低效率
  任意對爬蟲(chóng)控制,可隨時(shí)暫停、繼續、停止爬蟲(chóng)
  良好的用戶(hù)體驗
  授權合同: GPLv3
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  25、spidernet
  spidernet是一個(gè)以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持text/html資源的獲取.可以設定爬行深度,最大下載字節數限制,支持gzip解碼,支持以gbk(gb2312)和utf8編碼的資源;存儲于sqlite數據文件.
  源碼中TODO:標記描述了未完成功能,希望遞交你的代碼.
  授權合同: MIT
  開(kāi)發(fā)語(yǔ)言: C#
  操作系統: Windows
  github源代碼:
  特點(diǎn):以遞歸樹(shù)為模型的多線(xiàn)程web爬蟲(chóng)程序,支持以GBK (gb2312)和utf8編碼的資源,使用sqlite儲存數據
  26、Web Crawler
  mart and Simple Web Crawler是一個(gè)Web爬蟲(chóng)框架。集成Lucene支持。該爬蟲(chóng)可以從單個(gè)鏈接或一個(gè)鏈接字段開(kāi)始,提供兩種遍歷模式:最大迭代和最大深度??梢栽O置過(guò)濾器限制爬回去的鏈接,默認提供三個(gè)過(guò)濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個(gè)過(guò)濾器可用AND、OR和NOT聯(lián)合。在解析過(guò)程或頁(yè)面加載前后都可以加監聽(tīng)器。介紹內容來(lái)自Open-Open
  開(kāi)發(fā)語(yǔ)言: Java
  操作系統:跨平臺
  授權合同: LGPL
  特點(diǎn):多線(xiàn)程,支持抓取PDF/DOC/EXCEL等文檔來(lái)源
  27、網(wǎng)絡(luò )礦工
  網(wǎng)站數據采集軟件網(wǎng)路礦工[url=http://www.hqbet6457.com/]采集器(原soukey采摘)
  Soukey采摘網(wǎng)站數據采集軟件是一款基于.Net平臺的開(kāi)源軟件,也是網(wǎng)站數據采集軟件類(lèi)型中惟一一款開(kāi)源軟件。盡管Soukey采摘開(kāi)源,但并不會(huì )影響軟件功能的提供,甚至要比一些商用軟件的功能還要豐富。
  授權合同: BSD
  開(kāi)發(fā)語(yǔ)言: C#.NET
  操作系統: Windows
  特點(diǎn):功能豐富,毫不遜色于商業(yè)軟件
  PHP爬蟲(chóng)
  28、OpenWebSpider
  OpenWebSpider是一個(gè)開(kāi)源多線(xiàn)程Web Spider(robot:機器人,crawler:爬蟲(chóng))和包含許多有趣功能的搜索引擎。
  授權合同:未知
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):開(kāi)源多線(xiàn)程網(wǎng)絡(luò )爬蟲(chóng),有許多有趣的功能
  29、PhpDig
  PhpDig是一個(gè)采用PHP開(kāi)發(fā)的Web爬蟲(chóng)和搜索引擎。通過(guò)對動(dòng)態(tài)和靜態(tài)頁(yè)面進(jìn)行索引構建一個(gè)詞匯表。當搜索查詢(xún)時(shí),它將按一定的排序規則顯示包含關(guān)鍵字的搜索結果頁(yè)面。PhpDig包含一個(gè)模板系統并才能索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用于專(zhuān)業(yè)化更強、層次更深的個(gè)性化搜索引擎,利用它構建針對某一領(lǐng)域的垂直搜索引擎是最好的選擇。
  演示:
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  特點(diǎn):具有采集網(wǎng)頁(yè)內容、提交表單功能
  30、ThinkUp
  ThinkUp 是一個(gè)可以采集推特,facebook等社交網(wǎng)路數據的社會(huì )媒體視角引擎。通過(guò)采集個(gè)人的社交網(wǎng)絡(luò )帳號中的數據,對其存檔以及處理的交互剖析工具,并將數據圖形化便于更直觀(guān)的查看。
  
  
  授權合同: GPL
  開(kāi)發(fā)語(yǔ)言: PHP
  操作系統:跨平臺
  github源碼:
  特點(diǎn):采集推特、臉譜等社交網(wǎng)路數據的社會(huì )媒體視角引擎,可進(jìn)行交互剖析并將結果以可視化方式詮釋
  31、微購
  微購社會(huì )化購物系統是一款基于ThinkPHP框架開(kāi)發(fā)的開(kāi)源的購物分享系統,同時(shí)它也是一套針對站長(cháng)、開(kāi)源的的淘寶客網(wǎng)站程序,它整合了天貓、天貓、淘寶客等300多家商品數據采集接口,為廣大的淘寶客站長(cháng)提供傻瓜式淘客建站服務(wù),會(huì )HTML都會(huì )做程序模板,免費開(kāi)放下載,是廣大淘客站長(cháng)的首選。

網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的定義與反爬蟲(chóng)方法剖析

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 454 次瀏覽 ? 2020-05-11 08:03 ? 來(lái)自相關(guān)話(huà)題

  Web是一個(gè)開(kāi)放的平臺,這也奠定了Web從90年代初誕生直到明日將近30年來(lái)蓬勃的發(fā)展。然而,正所謂成也蕭何敗也蕭何,開(kāi)放的特型、搜索引擎以及簡(jiǎn)單易學(xué)的HTML、CSS技術(shù)促使Web成為了互聯(lián)網(wǎng)領(lǐng)域里最為流行和成熟的信息傳播媒介;但現在作為商業(yè)化軟件,Web這個(gè)平臺上的內容信息的版權卻毫無(wú)保證,因為相比軟件客戶(hù)端而言,你的網(wǎng)頁(yè)中的內容可以被太低成本、很低的技術(shù)門(mén)檻實(shí)現出的一些抓取程序獲取到,這也就是這一系列文章將要闡述的話(huà)題——網(wǎng)絡(luò )爬蟲(chóng)。
  
  有很多人覺(jué)得Web應該一直秉持開(kāi)放的精神,呈現在頁(yè)面中的信息應該毫無(wú)保留地分享給整個(gè)互聯(lián)網(wǎng)。然而我覺(jué)得,在IT行業(yè)發(fā)展至明天,Web早已不再是當初那種和PDF一爭高下的所謂“超文本”信息載體了,它早已是以一種輕量級客戶(hù)端軟件的意識形態(tài)的存在了。而商業(yè)軟件發(fā)展到明天,Web也不得不面對知識產(chǎn)權保護的問(wèn)題,試想假如原創(chuàng )的高質(zhì)量?jì)热莸貌坏奖Wo,抄襲和盜版橫行網(wǎng)路世界,這顯然對Web生態(tài)的良性發(fā)展是不利的,也很難鼓勵更多的優(yōu)質(zhì)原創(chuàng )內容的生產(chǎn)。
  未授權的爬蟲(chóng)抓取程序是害處Web原創(chuàng )內容生態(tài)的一大誘因,因此要保護網(wǎng)站的內容,首先就要考慮怎樣反爬蟲(chóng)。
  從爬蟲(chóng)的攻守角度來(lái)講
  最簡(jiǎn)單的爬蟲(chóng),是幾乎所有服務(wù)端、客戶(hù)端編程語(yǔ)言都支持的http懇求,只要向目標頁(yè)面的url發(fā)起一個(gè)http get懇求,即可獲得到瀏覽器加載這個(gè)頁(yè)面時(shí)的完整html文檔,這被我們稱(chēng)之為“同步頁(yè)”。
  作為逼搶的一方,服務(wù)端可以按照http請求頭中的User-Agent來(lái)檢測客戶(hù)端是否是一個(gè)合法的瀏覽器程序,亦或是一個(gè)腳本編撰的抓取程序,從而決定是否將真實(shí)的頁(yè)面信息內容下發(fā)給你。
  這其實(shí)是最小兒科的防御手段,爬蟲(chóng)作為逼搶的一方,完全可以偽造User-Agent數組,甚至,只要你樂(lè )意,http的get方式里, request header的 Referrer 、 Cookie 等等所有數組爬蟲(chóng)都可以輕而易舉的偽造。
  此時(shí)服務(wù)端可以借助瀏覽器http頭指紋,根據你申明的自己的瀏覽器廠(chǎng)商和版本(來(lái)自 User-Agent ),來(lái)分辨你的http header中的各個(gè)數組是否符合該瀏覽器的特點(diǎn),如不符合則作為爬蟲(chóng)程序對待。這個(gè)技術(shù)有一個(gè)典型的應用,就是PhantomJS1.x版本中,由于其底層調用了Qt框架的網(wǎng)路庫,因此http頭里有顯著(zhù)的Qt框架網(wǎng)路懇求的特點(diǎn),可以被服務(wù)端直接辨識并攔截。
  除此之外,還有一種愈發(fā)變態(tài)的服務(wù)端爬蟲(chóng)檢查機制,就是對所有訪(fǎng)問(wèn)頁(yè)面的http請求,在 http response 中種下一個(gè) cookie token ,然后在這個(gè)頁(yè)面內異步執行的一些ajax插口里去校準來(lái)訪(fǎng)懇求是否富含cookie token,將token回傳回去則表明這是一個(gè)合法的瀏覽器來(lái)訪(fǎng),否則說(shuō)明剛才被下發(fā)了那種token的用戶(hù)訪(fǎng)問(wèn)了頁(yè)面html卻沒(méi)有訪(fǎng)問(wèn)html內執行js后調用的ajax懇求,很有可能是一個(gè)爬蟲(chóng)程序。
  如果你不攜帶token直接訪(fǎng)問(wèn)一個(gè)插口,這也就意味著(zhù)你沒(méi)懇求過(guò)html頁(yè)面直接向本應由頁(yè)面內ajax訪(fǎng)問(wèn)的插口發(fā)起了網(wǎng)路懇求,這也似乎證明了你是一個(gè)可疑的爬蟲(chóng)。知名電商網(wǎng)站amazon就是采用的這些防御策略。
  以上則是基于服務(wù)端校準爬蟲(chóng)程序,可以玩出的一些套路手段。
  基于客戶(hù)端js運行時(shí)的測量
  現代瀏覽器賦于了強悍的能力,因此我們可以把頁(yè)面的所有核心內容都弄成js異步懇求 ajax 獲取數據后渲染在頁(yè)面中的,這也許提升了爬蟲(chóng)抓取內容的門(mén)檻。依靠這些方法,我們把對抓取與反抓取的對抗戰場(chǎng)從服務(wù)端轉移到了客戶(hù)端瀏覽器中的js運行時(shí),接下來(lái)說(shuō)一說(shuō)結合客戶(hù)端js運行時(shí)的爬蟲(chóng)抓取技術(shù)。
  剛剛提到的各類(lèi)服務(wù)端校準,對于普通的python、java語(yǔ)言編撰的http抓取程序而言,具有一定的技術(shù)門(mén)檻,畢竟一個(gè)web應用對于未授權抓取者而言是黑盒的,很多東西須要一點(diǎn)一點(diǎn)去嘗試,而耗費大量人力物力開(kāi)發(fā)好的一套抓取程序,web站作為逼搶一方只要輕易調整一些策略,攻擊者就須要再度耗費同等的時(shí)間去更改爬蟲(chóng)抓取邏輯。
  此時(shí)就須要使用headless browser了,這是哪些技術(shù)呢?其實(shí)說(shuō)白了就是,讓程序可以操作瀏覽器去訪(fǎng)問(wèn)網(wǎng)頁(yè),這樣編撰爬蟲(chóng)的人可以通過(guò)調用瀏覽器曝露下來(lái)給程序調用的api去實(shí)現復雜的抓取業(yè)務(wù)邏輯。
  其實(shí)近些年來(lái)這早已不算是哪些新鮮的技術(shù)了,從前有基于webkit內核的PhantomJS,基于Firefox瀏覽器內核的SlimerJS,甚至基于IE內核的trifleJS,有興趣可以瞧瞧這兒和這兒 是兩個(gè)headless browser的搜集列表。
  這些headless browser程序實(shí)現的原理雖然是把開(kāi)源的一些瀏覽器內核C++++代碼加以整修和封裝,實(shí)現一個(gè)簡(jiǎn)易的無(wú)GUI界面渲染的browser程序。但這種項目普遍存在的問(wèn)題是,由于她們的代碼基于fork官方webkit等內核的某一個(gè)版本的主干代碼,因此難以跟進(jìn)一些最新的css屬性和js句型,并且存在一些兼容性的問(wèn)題,不如真正的release版GUI瀏覽器。
  這其中最為成熟、使用率最高的應當當屬PhantonJS了,對這些爬蟲(chóng)的辨識我之前曾寫(xiě)過(guò)一篇博客,這里不再贅言。PhantomJS存在眾多問(wèn)題,因為是單進(jìn)程模型,沒(méi)有必要的沙箱保護,瀏覽器內核的安全性較差。
  如今Google Chrome團隊在chrome 59 release版本中開(kāi)放了headless mode api,并開(kāi)源了一個(gè)基于Node.js調用的headless chromium dirver庫,我也為這個(gè)庫貢獻了一個(gè)centos環(huán)境的布署依賴(lài)安裝列表。
  headless chrome堪稱(chēng)是headless browser中獨樹(shù)一幟的大殺器,由于其自身就是一個(gè)chrome瀏覽器,因此支持各類(lèi)新的css渲染特點(diǎn)和js運行時(shí)句型。
  基于這樣的手段,爬蟲(chóng)作為逼搶的一方可以繞開(kāi)幾乎所有服務(wù)端校準邏輯,但是這種爬蟲(chóng)在客戶(hù)端的js運行時(shí)中仍然存在著(zhù)一些紕漏,諸如:
  基于plugin對象的檢測
  
  基于language的檢測
  
  基于webgl的檢測
  
  基于瀏覽器hairline特點(diǎn)的檢測
  
  基于錯誤img src屬性生成的img對象的檢測
  
  基于以上的一些瀏覽器特點(diǎn)的判定,基本可以通殺市面上大多數headless browser程序。在這一點(diǎn)上,實(shí)際上是將網(wǎng)頁(yè)抓取的門(mén)檻提升,要求編撰爬蟲(chóng)程序的開(kāi)發(fā)者不得不更改瀏覽器內核的C++代碼,重新編譯一個(gè)瀏覽器,并且,以上幾點(diǎn)特點(diǎn)是對瀏覽器內核的改動(dòng)雖然并不小。
  更進(jìn)一步,我們還可以基于瀏覽器的UserAgent數組描述的瀏覽器品牌、版本機型信息,對js運行時(shí)、DOM和BOM的各個(gè)原生對象的屬性及技巧進(jìn)行檢驗,觀(guān)察其特點(diǎn)是否符合該版本的瀏覽器所應具備的特點(diǎn)。
  這種方法被稱(chēng)為瀏覽器指紋檢測技術(shù),依托于小型web站對各機型瀏覽器api信息的搜集。而作為編撰爬蟲(chóng)程序的逼搶一方,則可以在headless browser運行時(shí)里預注入一些js邏輯,偽造瀏覽器的特點(diǎn)。
  另外,在研究瀏覽器端借助js api進(jìn)行robots browser detect時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),我們發(fā)覺(jué)了一個(gè)有趣的小技巧,你可以把一個(gè)預注入的js函數,偽裝成一個(gè)native function,來(lái)瞧瞧下邊代碼:
  
  爬蟲(chóng)進(jìn)攻方可能會(huì )預注入一些js方式,把原生的一些api外邊包裝一層proxy function作為hook,然后再用這個(gè)假的js api去覆蓋原生api。如果防御者在對此做檢測判定時(shí)是基于把函數toString以后對[native code]的檢測,那么都會(huì )被繞開(kāi)。所以須要更嚴格的檢測,因為bind(null)偽造的方式,在toString以后是不帶函數名的。
  反爬蟲(chóng)的手炮
  目前的反抓取、機器人檢測手段,最可靠的還是驗證碼技術(shù)。但驗證碼并不意味著(zhù)一定要逼迫用戶(hù)輸入一連串字母數字,也有好多基于用戶(hù)鍵盤(pán)、觸屏(移動(dòng)端)等行為的行為驗證技術(shù),這其中最為成熟的當屬Google reCAPTCHA。
  基于以上眾多對用戶(hù)與爬蟲(chóng)的辨識分辨技術(shù),網(wǎng)站的防御方最終要做的是封禁ip地址或是對這個(gè)ip的來(lái)訪(fǎng)用戶(hù)施以高硬度的驗證碼策略。這樣一來(lái),進(jìn)攻方不得不訂購ip代理池來(lái)抓取網(wǎng)站信息內容,否則單個(gè)ip地址很容易被封造成難以抓取。抓取與反抓取的門(mén)檻被提升到了ip代理池經(jīng)濟費用的層面。
  機器人協(xié)議
  除此之外,在爬蟲(chóng)抓取技術(shù)領(lǐng)域還有一個(gè)“白道”的手段,叫做robots協(xié)議。你可以在一個(gè)網(wǎng)站的根目錄下訪(fǎng)問(wèn)/robots.txt,比如使我們一起來(lái)瞧瞧github的機器人合同,Allow和Disallow申明了對各個(gè)UA爬蟲(chóng)的抓取授權。
  不過(guò),這只是一個(gè)君子合同,雖具有法律效益,但只能夠限制這些商業(yè)搜索引擎的蜘蛛程序,你沒(méi)法對這些“野爬愛(ài)好者”加以限制。
  寫(xiě)在最后
  對網(wǎng)頁(yè)內容的抓取與反制,注定是一個(gè)魔高一尺道高一丈的貓鼠游戲,你永遠不可能以某一種技術(shù)徹底封死爬蟲(chóng)程序的街網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),你能做的只是增強攻擊者的抓取成本,并對于未授權的抓取行為做到較為精確的據悉。 查看全部

  Web是一個(gè)開(kāi)放的平臺,這也奠定了Web從90年代初誕生直到明日將近30年來(lái)蓬勃的發(fā)展。然而,正所謂成也蕭何敗也蕭何,開(kāi)放的特型、搜索引擎以及簡(jiǎn)單易學(xué)的HTML、CSS技術(shù)促使Web成為了互聯(lián)網(wǎng)領(lǐng)域里最為流行和成熟的信息傳播媒介;但現在作為商業(yè)化軟件,Web這個(gè)平臺上的內容信息的版權卻毫無(wú)保證,因為相比軟件客戶(hù)端而言,你的網(wǎng)頁(yè)中的內容可以被太低成本、很低的技術(shù)門(mén)檻實(shí)現出的一些抓取程序獲取到,這也就是這一系列文章將要闡述的話(huà)題——網(wǎng)絡(luò )爬蟲(chóng)。
  
  有很多人覺(jué)得Web應該一直秉持開(kāi)放的精神,呈現在頁(yè)面中的信息應該毫無(wú)保留地分享給整個(gè)互聯(lián)網(wǎng)。然而我覺(jué)得,在IT行業(yè)發(fā)展至明天,Web早已不再是當初那種和PDF一爭高下的所謂“超文本”信息載體了,它早已是以一種輕量級客戶(hù)端軟件的意識形態(tài)的存在了。而商業(yè)軟件發(fā)展到明天,Web也不得不面對知識產(chǎn)權保護的問(wèn)題,試想假如原創(chuàng )的高質(zhì)量?jì)热莸貌坏奖Wo,抄襲和盜版橫行網(wǎng)路世界,這顯然對Web生態(tài)的良性發(fā)展是不利的,也很難鼓勵更多的優(yōu)質(zhì)原創(chuàng )內容的生產(chǎn)。
  未授權的爬蟲(chóng)抓取程序是害處Web原創(chuàng )內容生態(tài)的一大誘因,因此要保護網(wǎng)站的內容,首先就要考慮怎樣反爬蟲(chóng)。
  從爬蟲(chóng)的攻守角度來(lái)講
  最簡(jiǎn)單的爬蟲(chóng),是幾乎所有服務(wù)端、客戶(hù)端編程語(yǔ)言都支持的http懇求,只要向目標頁(yè)面的url發(fā)起一個(gè)http get懇求,即可獲得到瀏覽器加載這個(gè)頁(yè)面時(shí)的完整html文檔,這被我們稱(chēng)之為“同步頁(yè)”。
  作為逼搶的一方,服務(wù)端可以按照http請求頭中的User-Agent來(lái)檢測客戶(hù)端是否是一個(gè)合法的瀏覽器程序,亦或是一個(gè)腳本編撰的抓取程序,從而決定是否將真實(shí)的頁(yè)面信息內容下發(fā)給你。
  這其實(shí)是最小兒科的防御手段,爬蟲(chóng)作為逼搶的一方,完全可以偽造User-Agent數組,甚至,只要你樂(lè )意,http的get方式里, request header的 Referrer 、 Cookie 等等所有數組爬蟲(chóng)都可以輕而易舉的偽造。
  此時(shí)服務(wù)端可以借助瀏覽器http頭指紋,根據你申明的自己的瀏覽器廠(chǎng)商和版本(來(lái)自 User-Agent ),來(lái)分辨你的http header中的各個(gè)數組是否符合該瀏覽器的特點(diǎn),如不符合則作為爬蟲(chóng)程序對待。這個(gè)技術(shù)有一個(gè)典型的應用,就是PhantomJS1.x版本中,由于其底層調用了Qt框架的網(wǎng)路庫,因此http頭里有顯著(zhù)的Qt框架網(wǎng)路懇求的特點(diǎn),可以被服務(wù)端直接辨識并攔截。
  除此之外,還有一種愈發(fā)變態(tài)的服務(wù)端爬蟲(chóng)檢查機制,就是對所有訪(fǎng)問(wèn)頁(yè)面的http請求,在 http response 中種下一個(gè) cookie token ,然后在這個(gè)頁(yè)面內異步執行的一些ajax插口里去校準來(lái)訪(fǎng)懇求是否富含cookie token,將token回傳回去則表明這是一個(gè)合法的瀏覽器來(lái)訪(fǎng),否則說(shuō)明剛才被下發(fā)了那種token的用戶(hù)訪(fǎng)問(wèn)了頁(yè)面html卻沒(méi)有訪(fǎng)問(wèn)html內執行js后調用的ajax懇求,很有可能是一個(gè)爬蟲(chóng)程序。
  如果你不攜帶token直接訪(fǎng)問(wèn)一個(gè)插口,這也就意味著(zhù)你沒(méi)懇求過(guò)html頁(yè)面直接向本應由頁(yè)面內ajax訪(fǎng)問(wèn)的插口發(fā)起了網(wǎng)路懇求,這也似乎證明了你是一個(gè)可疑的爬蟲(chóng)。知名電商網(wǎng)站amazon就是采用的這些防御策略。
  以上則是基于服務(wù)端校準爬蟲(chóng)程序,可以玩出的一些套路手段。
  基于客戶(hù)端js運行時(shí)的測量
  現代瀏覽器賦于了強悍的能力,因此我們可以把頁(yè)面的所有核心內容都弄成js異步懇求 ajax 獲取數據后渲染在頁(yè)面中的,這也許提升了爬蟲(chóng)抓取內容的門(mén)檻。依靠這些方法,我們把對抓取與反抓取的對抗戰場(chǎng)從服務(wù)端轉移到了客戶(hù)端瀏覽器中的js運行時(shí),接下來(lái)說(shuō)一說(shuō)結合客戶(hù)端js運行時(shí)的爬蟲(chóng)抓取技術(shù)。
  剛剛提到的各類(lèi)服務(wù)端校準,對于普通的python、java語(yǔ)言編撰的http抓取程序而言,具有一定的技術(shù)門(mén)檻,畢竟一個(gè)web應用對于未授權抓取者而言是黑盒的,很多東西須要一點(diǎn)一點(diǎn)去嘗試,而耗費大量人力物力開(kāi)發(fā)好的一套抓取程序,web站作為逼搶一方只要輕易調整一些策略,攻擊者就須要再度耗費同等的時(shí)間去更改爬蟲(chóng)抓取邏輯。
  此時(shí)就須要使用headless browser了,這是哪些技術(shù)呢?其實(shí)說(shuō)白了就是,讓程序可以操作瀏覽器去訪(fǎng)問(wèn)網(wǎng)頁(yè),這樣編撰爬蟲(chóng)的人可以通過(guò)調用瀏覽器曝露下來(lái)給程序調用的api去實(shí)現復雜的抓取業(yè)務(wù)邏輯。
  其實(shí)近些年來(lái)這早已不算是哪些新鮮的技術(shù)了,從前有基于webkit內核的PhantomJS,基于Firefox瀏覽器內核的SlimerJS,甚至基于IE內核的trifleJS,有興趣可以瞧瞧這兒和這兒 是兩個(gè)headless browser的搜集列表。
  這些headless browser程序實(shí)現的原理雖然是把開(kāi)源的一些瀏覽器內核C++++代碼加以整修和封裝,實(shí)現一個(gè)簡(jiǎn)易的無(wú)GUI界面渲染的browser程序。但這種項目普遍存在的問(wèn)題是,由于她們的代碼基于fork官方webkit等內核的某一個(gè)版本的主干代碼,因此難以跟進(jìn)一些最新的css屬性和js句型,并且存在一些兼容性的問(wèn)題,不如真正的release版GUI瀏覽器。
  這其中最為成熟、使用率最高的應當當屬PhantonJS了,對這些爬蟲(chóng)的辨識我之前曾寫(xiě)過(guò)一篇博客,這里不再贅言。PhantomJS存在眾多問(wèn)題,因為是單進(jìn)程模型,沒(méi)有必要的沙箱保護,瀏覽器內核的安全性較差。
  如今Google Chrome團隊在chrome 59 release版本中開(kāi)放了headless mode api,并開(kāi)源了一個(gè)基于Node.js調用的headless chromium dirver庫,我也為這個(gè)庫貢獻了一個(gè)centos環(huán)境的布署依賴(lài)安裝列表。
  headless chrome堪稱(chēng)是headless browser中獨樹(shù)一幟的大殺器,由于其自身就是一個(gè)chrome瀏覽器,因此支持各類(lèi)新的css渲染特點(diǎn)和js運行時(shí)句型。
  基于這樣的手段,爬蟲(chóng)作為逼搶的一方可以繞開(kāi)幾乎所有服務(wù)端校準邏輯,但是這種爬蟲(chóng)在客戶(hù)端的js運行時(shí)中仍然存在著(zhù)一些紕漏,諸如:
  基于plugin對象的檢測
  
  基于language的檢測
  
  基于webgl的檢測
  
  基于瀏覽器hairline特點(diǎn)的檢測
  
  基于錯誤img src屬性生成的img對象的檢測
  
  基于以上的一些瀏覽器特點(diǎn)的判定,基本可以通殺市面上大多數headless browser程序。在這一點(diǎn)上,實(shí)際上是將網(wǎng)頁(yè)抓取的門(mén)檻提升,要求編撰爬蟲(chóng)程序的開(kāi)發(fā)者不得不更改瀏覽器內核的C++代碼,重新編譯一個(gè)瀏覽器,并且,以上幾點(diǎn)特點(diǎn)是對瀏覽器內核的改動(dòng)雖然并不小。
  更進(jìn)一步,我們還可以基于瀏覽器的UserAgent數組描述的瀏覽器品牌、版本機型信息,對js運行時(shí)、DOM和BOM的各個(gè)原生對象的屬性及技巧進(jìn)行檢驗,觀(guān)察其特點(diǎn)是否符合該版本的瀏覽器所應具備的特點(diǎn)。
  這種方法被稱(chēng)為瀏覽器指紋檢測技術(shù),依托于小型web站對各機型瀏覽器api信息的搜集。而作為編撰爬蟲(chóng)程序的逼搶一方,則可以在headless browser運行時(shí)里預注入一些js邏輯,偽造瀏覽器的特點(diǎn)。
  另外,在研究瀏覽器端借助js api進(jìn)行robots browser detect時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),我們發(fā)覺(jué)了一個(gè)有趣的小技巧,你可以把一個(gè)預注入的js函數,偽裝成一個(gè)native function,來(lái)瞧瞧下邊代碼:
  
  爬蟲(chóng)進(jìn)攻方可能會(huì )預注入一些js方式,把原生的一些api外邊包裝一層proxy function作為hook,然后再用這個(gè)假的js api去覆蓋原生api。如果防御者在對此做檢測判定時(shí)是基于把函數toString以后對[native code]的檢測,那么都會(huì )被繞開(kāi)。所以須要更嚴格的檢測,因為bind(null)偽造的方式,在toString以后是不帶函數名的。
  反爬蟲(chóng)的手炮
  目前的反抓取、機器人檢測手段,最可靠的還是驗證碼技術(shù)。但驗證碼并不意味著(zhù)一定要逼迫用戶(hù)輸入一連串字母數字,也有好多基于用戶(hù)鍵盤(pán)、觸屏(移動(dòng)端)等行為的行為驗證技術(shù),這其中最為成熟的當屬Google reCAPTCHA。
  基于以上眾多對用戶(hù)與爬蟲(chóng)的辨識分辨技術(shù),網(wǎng)站的防御方最終要做的是封禁ip地址或是對這個(gè)ip的來(lái)訪(fǎng)用戶(hù)施以高硬度的驗證碼策略。這樣一來(lái),進(jìn)攻方不得不訂購ip代理池來(lái)抓取網(wǎng)站信息內容,否則單個(gè)ip地址很容易被封造成難以抓取。抓取與反抓取的門(mén)檻被提升到了ip代理池經(jīng)濟費用的層面。
  機器人協(xié)議
  除此之外,在爬蟲(chóng)抓取技術(shù)領(lǐng)域還有一個(gè)“白道”的手段,叫做robots協(xié)議。你可以在一個(gè)網(wǎng)站的根目錄下訪(fǎng)問(wèn)/robots.txt,比如使我們一起來(lái)瞧瞧github的機器人合同,Allow和Disallow申明了對各個(gè)UA爬蟲(chóng)的抓取授權。
  不過(guò),這只是一個(gè)君子合同,雖具有法律效益,但只能夠限制這些商業(yè)搜索引擎的蜘蛛程序,你沒(méi)法對這些“野爬愛(ài)好者”加以限制。
  寫(xiě)在最后
  對網(wǎng)頁(yè)內容的抓取與反制,注定是一個(gè)魔高一尺道高一丈的貓鼠游戲,你永遠不可能以某一種技術(shù)徹底封死爬蟲(chóng)程序的街網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),你能做的只是增強攻擊者的抓取成本,并對于未授權的抓取行為做到較為精確的據悉。

淺談網(wǎng)絡(luò )爬蟲(chóng)及其發(fā)展趨勢

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 340 次瀏覽 ? 2020-05-11 08:02 ? 來(lái)自相關(guān)話(huà)題

  
  隨著(zhù)的發(fā)展壯大,人們獲取信息的途徑漸漸被網(wǎng)路所代替?;ヂ?lián)網(wǎng)發(fā)展早期,人們主要通過(guò)瀏覽門(mén)戶(hù)網(wǎng)站的方法獲取所需信息,但是隨著(zhù)Web的飛速發(fā)展, 用這些方法找尋自己所需信息顯得越來(lái)越困難。目前,人們大多通過(guò)搜索引擎獲取有用信息網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),因此,搜索引擎技術(shù)的發(fā)展將直接影響人們獲取所需信息的速率和質(zhì)量。
  1994 年世界上第一個(gè)網(wǎng)絡(luò )檢索工具Web Crawler 問(wèn)世, 目前較流行的搜索引擎有、、Yahoo、Info seek、Inktomi、Teoma、Live Search 等。出于商業(yè)機密的考慮,現在各個(gè)搜索引擎使用的Crawler 系統的技術(shù)黑幕通常都不公開(kāi),現有的文獻資料也僅限于概要性介紹。隨著(zhù)網(wǎng)路信息資源呈指數級下降及網(wǎng)路信息資源動(dòng)態(tài)變化,傳統的搜索引擎提供的信息檢索服務(wù)已難以滿(mǎn)足人們愈加下降的對個(gè)性化服務(wù)的需求,正面臨著(zhù)巨大的挑戰。以何種策略訪(fǎng)問(wèn)網(wǎng)路,提高搜索效率,已成為近些年來(lái)專(zhuān)業(yè)搜索引擎研究的主要問(wèn)題之一。
  1、搜索引擎分類(lèi)
  搜索引擎按其形式主要分為全文搜索引擎、目錄索引類(lèi)搜索引擎和元搜索引擎三種。
  1.1 全文搜索引擎
  全文搜索引擎是名副其實(shí)的搜索引擎,通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站信息(以網(wǎng)頁(yè)文字為主)而構建的中,檢索與用戶(hù)查詢(xún)條件匹配的相關(guān)記錄,然后按一定的排列次序將結果返回給用戶(hù)。
  全文搜索引擎又可細分為兩種:a)擁有自己的檢索程序(Indexer),俗稱(chēng)“蜘蛛”(Spider)程序或“機器人”(Robot)程序,自建網(wǎng)頁(yè)數據庫,搜索結果直接從自身的數據庫中調用。b)租用其他引擎的數據庫,按自定的格式排列搜索結果。
  1.2 目錄索引型搜索引擎
  與全文搜索引擎不同的是,目錄索引型搜索引擎的索引數據庫是由編輯人員人工構建上去的,這些編輯人員在訪(fǎng)問(wèn)過(guò)某個(gè)Web 站點(diǎn)后,根據一套自定的衡量標準及主觀(guān)印象作出對該站點(diǎn)的描述,并按照站點(diǎn)的內容和性質(zhì)將其歸為一個(gè)預先分好的類(lèi)別,分門(mén)別類(lèi)地儲存在相應的目錄中。用戶(hù)在查詢(xún)時(shí),可以通過(guò)關(guān)鍵詞搜索,也可以按分類(lèi)目錄逐層檢索。
  因為目錄索引型的索引數據庫是借助人工來(lái)評價(jià)一個(gè)網(wǎng)站的內容,所以用戶(hù)從目錄搜索到的結果常常比全文檢索到的結果更具有參考價(jià)值。實(shí)際上,目前好多的搜索網(wǎng)站都同時(shí)提供目錄和全文搜索的搜索服務(wù),盡可能為用戶(hù)提供全面的查詢(xún)結果。
  1.3 元搜索引擎
  元搜索引擎是將用戶(hù)遞交的檢索懇求送到多個(gè)獨立的搜索引擎搜索,將檢索結果集中統一處理,以統一的格式提供給用戶(hù),因此有搜索引擎之上的搜索引擎之稱(chēng)。它將主要精力放到提升搜索速率、智能化處理搜索結果、個(gè)性搜索功能的設置和用戶(hù)檢索界面的友好性上,其查全率和查準率相對較高。它的特征是本身沒(méi)有儲存網(wǎng)頁(yè)信息的數據庫,當用戶(hù)查詢(xún)一個(gè)關(guān)鍵詞時(shí),它將用戶(hù)懇求轉換成其他搜索引擎能接受的命令格式,并行地訪(fǎng)問(wèn)數個(gè)搜索引擎來(lái)查詢(xún)這個(gè)關(guān)鍵詞,將這種搜索引擎返回的結果經(jīng)過(guò)處理后再返回給用戶(hù)。在搜索結果排列方面,有的直接按來(lái)源引擎排列搜索結果,有的則按自定的規則將結果重新排列組合。
  2、網(wǎng)絡(luò )爬蟲(chóng)技術(shù)
  2.1 網(wǎng)絡(luò )爬蟲(chóng)的工作原理
  網(wǎng)絡(luò )爬蟲(chóng)源自Spider(或Crawler、robots、wanderer)等的譯音。網(wǎng)絡(luò )爬蟲(chóng)的定義有廣義和狹義之分,狹義的定義為:利用標準的http 協(xié)議,根據超級鏈接和Web 文檔檢索的方式遍歷萬(wàn)維網(wǎng)信息空間的軟件程序。廣義的定義為:所有能借助http協(xié)議檢索Web 文檔的軟件都稱(chēng)之為網(wǎng)路爬蟲(chóng)。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)功能太強悍的手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)下載網(wǎng)頁(yè),是搜索引擎的重要組成部份。它通過(guò)懇求站點(diǎn)上的HTML 文檔訪(fǎng)問(wèn)某一站點(diǎn)。它遍歷Web 空間,不斷從一個(gè)站點(diǎn)到另一個(gè)站點(diǎn),自動(dòng)構建索引,并加入到網(wǎng)頁(yè)數據庫中。網(wǎng)絡(luò )爬蟲(chóng)步入某個(gè)超級文本時(shí),利用HTML 語(yǔ)言的標記結構來(lái)搜索信息及獲取指向其他超級文本的URL 地址,可以完全不依賴(lài)用戶(hù)干預實(shí)現網(wǎng)路上的手動(dòng)“爬行”和搜索。網(wǎng)絡(luò )爬蟲(chóng)在搜索時(shí)常常采用一定的搜索策略。
  2.2 網(wǎng)絡(luò )爬蟲(chóng)的搜索策略
  1)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式,它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超級鏈接的HTML文件)。在一個(gè)HTML文件中,當一個(gè)超級鏈接被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,即在搜索其余的超級鏈接結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超級鏈接走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超級鏈接。當不再有其他超級鏈接可選擇時(shí),說(shuō)明搜索早已結束。其優(yōu)點(diǎn)是能遍歷一個(gè)Web站點(diǎn)或深層嵌套的文檔集合。缺點(diǎn)是因為Web結構相當深,有可能導致一旦進(jìn)去再也出不來(lái)的情況發(fā)生。
  2)寬度優(yōu)先搜索策略
  在長(cháng)度優(yōu)先搜索中,先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML 文件中有3個(gè)超級鏈接,選擇其中之一,處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超級鏈接,而是返回,選擇第二個(gè)超級鏈接,處理相應的HTML文件,再返回,選擇第三個(gè)超級鏈接,并處理相應的HTML文件。一旦一層上的所有超級鏈接都被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超級鏈接。這就保證了對淺層的首先處理。當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),不會(huì )造成陷進(jìn)WWW的深層文檔中出不來(lái)的情況發(fā)生。寬度優(yōu)先搜索策略還有一個(gè)優(yōu)點(diǎn),它能在兩個(gè)HTML文件之間找到最短路徑。寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費較長(cháng)時(shí)間能夠抵達深層的HTML文件。
  綜合考慮以上幾種策略和國外信息導航系統搜索信息的特性,國內通常采用以長(cháng)度優(yōu)先搜索策略為主,線(xiàn)性搜索策略為輔的搜索策略。對于個(gè)別不被引用的或極少被引用的HTML文件,寬度優(yōu)先搜索策略可能會(huì )遺漏那些孤立的信息源,可以用線(xiàn)性搜索策略作為它的補充。
  3)聚焦搜索策略
  聚焦爬蟲(chóng)的爬行策略只跳出某個(gè)特定主題的頁(yè)面,根據“最好優(yōu)先原則”進(jìn)行訪(fǎng)問(wèn),快速、有效地獲得更多的與主題相關(guān)的頁(yè)面,主要通過(guò)內容與Web的鏈接結構指導進(jìn)一步的頁(yè)面抓取。聚焦爬蟲(chóng)會(huì )給它所下載的頁(yè)面一個(gè)評價(jià)分,根據得分排序插入到一個(gè)隊列中。最好的下一個(gè)搜索對彈出隊列中的第一個(gè)頁(yè)面進(jìn)行剖析后執行,這種策略保證爬蟲(chóng)能優(yōu)先跟蹤這些最有可能鏈接到目標頁(yè)面的頁(yè)面。決定網(wǎng)路爬蟲(chóng)搜索策略的關(guān)鍵是怎樣評價(jià)鏈接價(jià)值,即鏈接價(jià)值的估算方式,不同的價(jià)值評價(jià)方式估算出的鏈接的價(jià)值不同,表現出的鏈接的“重要程度”也不同,從而決定了不同的搜索策略。由于鏈接包含于頁(yè)面之中,而一般具有較高價(jià)值的頁(yè)面包含的鏈接也具有較高價(jià)值,因而對鏈接價(jià)值的評價(jià)有時(shí)也轉換為對頁(yè)面價(jià)值的評價(jià)。這種策略一般運用在專(zhuān)業(yè)搜索引擎中,因為這些搜索引擎只關(guān)心某一特定主題的頁(yè)面。
  【福利】填問(wèn)卷送精選測試禮包+接口測試課程!為測試行業(yè)做點(diǎn)事! 查看全部

  
  隨著(zhù)的發(fā)展壯大,人們獲取信息的途徑漸漸被網(wǎng)路所代替?;ヂ?lián)網(wǎng)發(fā)展早期,人們主要通過(guò)瀏覽門(mén)戶(hù)網(wǎng)站的方法獲取所需信息,但是隨著(zhù)Web的飛速發(fā)展, 用這些方法找尋自己所需信息顯得越來(lái)越困難。目前,人們大多通過(guò)搜索引擎獲取有用信息網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),因此,搜索引擎技術(shù)的發(fā)展將直接影響人們獲取所需信息的速率和質(zhì)量。
  1994 年世界上第一個(gè)網(wǎng)絡(luò )檢索工具Web Crawler 問(wèn)世, 目前較流行的搜索引擎有、、Yahoo、Info seek、Inktomi、Teoma、Live Search 等。出于商業(yè)機密的考慮,現在各個(gè)搜索引擎使用的Crawler 系統的技術(shù)黑幕通常都不公開(kāi),現有的文獻資料也僅限于概要性介紹。隨著(zhù)網(wǎng)路信息資源呈指數級下降及網(wǎng)路信息資源動(dòng)態(tài)變化,傳統的搜索引擎提供的信息檢索服務(wù)已難以滿(mǎn)足人們愈加下降的對個(gè)性化服務(wù)的需求,正面臨著(zhù)巨大的挑戰。以何種策略訪(fǎng)問(wèn)網(wǎng)路,提高搜索效率,已成為近些年來(lái)專(zhuān)業(yè)搜索引擎研究的主要問(wèn)題之一。
  1、搜索引擎分類(lèi)
  搜索引擎按其形式主要分為全文搜索引擎、目錄索引類(lèi)搜索引擎和元搜索引擎三種。
  1.1 全文搜索引擎
  全文搜索引擎是名副其實(shí)的搜索引擎,通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站信息(以網(wǎng)頁(yè)文字為主)而構建的中,檢索與用戶(hù)查詢(xún)條件匹配的相關(guān)記錄,然后按一定的排列次序將結果返回給用戶(hù)。
  全文搜索引擎又可細分為兩種:a)擁有自己的檢索程序(Indexer),俗稱(chēng)“蜘蛛”(Spider)程序或“機器人”(Robot)程序,自建網(wǎng)頁(yè)數據庫,搜索結果直接從自身的數據庫中調用。b)租用其他引擎的數據庫,按自定的格式排列搜索結果。
  1.2 目錄索引型搜索引擎
  與全文搜索引擎不同的是,目錄索引型搜索引擎的索引數據庫是由編輯人員人工構建上去的,這些編輯人員在訪(fǎng)問(wèn)過(guò)某個(gè)Web 站點(diǎn)后,根據一套自定的衡量標準及主觀(guān)印象作出對該站點(diǎn)的描述,并按照站點(diǎn)的內容和性質(zhì)將其歸為一個(gè)預先分好的類(lèi)別,分門(mén)別類(lèi)地儲存在相應的目錄中。用戶(hù)在查詢(xún)時(shí),可以通過(guò)關(guān)鍵詞搜索,也可以按分類(lèi)目錄逐層檢索。
  因為目錄索引型的索引數據庫是借助人工來(lái)評價(jià)一個(gè)網(wǎng)站的內容,所以用戶(hù)從目錄搜索到的結果常常比全文檢索到的結果更具有參考價(jià)值。實(shí)際上,目前好多的搜索網(wǎng)站都同時(shí)提供目錄和全文搜索的搜索服務(wù),盡可能為用戶(hù)提供全面的查詢(xún)結果。
  1.3 元搜索引擎
  元搜索引擎是將用戶(hù)遞交的檢索懇求送到多個(gè)獨立的搜索引擎搜索,將檢索結果集中統一處理,以統一的格式提供給用戶(hù),因此有搜索引擎之上的搜索引擎之稱(chēng)。它將主要精力放到提升搜索速率、智能化處理搜索結果、個(gè)性搜索功能的設置和用戶(hù)檢索界面的友好性上,其查全率和查準率相對較高。它的特征是本身沒(méi)有儲存網(wǎng)頁(yè)信息的數據庫,當用戶(hù)查詢(xún)一個(gè)關(guān)鍵詞時(shí),它將用戶(hù)懇求轉換成其他搜索引擎能接受的命令格式,并行地訪(fǎng)問(wèn)數個(gè)搜索引擎來(lái)查詢(xún)這個(gè)關(guān)鍵詞,將這種搜索引擎返回的結果經(jīng)過(guò)處理后再返回給用戶(hù)。在搜索結果排列方面,有的直接按來(lái)源引擎排列搜索結果,有的則按自定的規則將結果重新排列組合。
  2、網(wǎng)絡(luò )爬蟲(chóng)技術(shù)
  2.1 網(wǎng)絡(luò )爬蟲(chóng)的工作原理
  網(wǎng)絡(luò )爬蟲(chóng)源自Spider(或Crawler、robots、wanderer)等的譯音。網(wǎng)絡(luò )爬蟲(chóng)的定義有廣義和狹義之分,狹義的定義為:利用標準的http 協(xié)議,根據超級鏈接和Web 文檔檢索的方式遍歷萬(wàn)維網(wǎng)信息空間的軟件程序。廣義的定義為:所有能借助http協(xié)議檢索Web 文檔的軟件都稱(chēng)之為網(wǎng)路爬蟲(chóng)。
  網(wǎng)絡(luò )爬蟲(chóng)是一個(gè)功能太強悍的手動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)下載網(wǎng)頁(yè),是搜索引擎的重要組成部份。它通過(guò)懇求站點(diǎn)上的HTML 文檔訪(fǎng)問(wèn)某一站點(diǎn)。它遍歷Web 空間,不斷從一個(gè)站點(diǎn)到另一個(gè)站點(diǎn),自動(dòng)構建索引,并加入到網(wǎng)頁(yè)數據庫中。網(wǎng)絡(luò )爬蟲(chóng)步入某個(gè)超級文本時(shí),利用HTML 語(yǔ)言的標記結構來(lái)搜索信息及獲取指向其他超級文本的URL 地址,可以完全不依賴(lài)用戶(hù)干預實(shí)現網(wǎng)路上的手動(dòng)“爬行”和搜索。網(wǎng)絡(luò )爬蟲(chóng)在搜索時(shí)常常采用一定的搜索策略。
  2.2 網(wǎng)絡(luò )爬蟲(chóng)的搜索策略
  1)深度優(yōu)先搜索策略
  深度優(yōu)先搜索是在開(kāi)發(fā)爬蟲(chóng)初期使用較多的方式,它的目的是要達到被搜索結構的葉結點(diǎn)(即這些不包含任何超級鏈接的HTML文件)。在一個(gè)HTML文件中,當一個(gè)超級鏈接被選擇后,被鏈接的HTML文件將執行深度優(yōu)先搜索,即在搜索其余的超級鏈接結果之前必須先完整地搜索單獨的一條鏈。深度優(yōu)先搜索順著(zhù)HTML文件上的超級鏈接走到不能再深入為止,然后返回到某一個(gè)HTML文件,再繼續選擇該HTML文件中的其他超級鏈接。當不再有其他超級鏈接可選擇時(shí),說(shuō)明搜索早已結束。其優(yōu)點(diǎn)是能遍歷一個(gè)Web站點(diǎn)或深層嵌套的文檔集合。缺點(diǎn)是因為Web結構相當深,有可能導致一旦進(jìn)去再也出不來(lái)的情況發(fā)生。
  2)寬度優(yōu)先搜索策略
  在長(cháng)度優(yōu)先搜索中,先搜索完一個(gè)Web頁(yè)面中所有的超級鏈接,然后再繼續搜索下一層,直到底層為止。例如,一個(gè)HTML 文件中有3個(gè)超級鏈接,選擇其中之一,處理相應的HTML文件,然后不再選擇第二個(gè)HTML文件中的任何超級鏈接,而是返回,選擇第二個(gè)超級鏈接,處理相應的HTML文件,再返回,選擇第三個(gè)超級鏈接,并處理相應的HTML文件。一旦一層上的所有超級鏈接都被選擇過(guò),就可以開(kāi)始在剛剛處理過(guò)的HIML文件中搜索其余的超級鏈接。這就保證了對淺層的首先處理。當遇見(jiàn)一個(gè)無(wú)窮盡的深層分支時(shí)網(wǎng)絡(luò )爬蟲(chóng) 技術(shù),不會(huì )造成陷進(jìn)WWW的深層文檔中出不來(lái)的情況發(fā)生。寬度優(yōu)先搜索策略還有一個(gè)優(yōu)點(diǎn),它能在兩個(gè)HTML文件之間找到最短路徑。寬度優(yōu)先搜索策略一般是實(shí)現爬蟲(chóng)的最佳策略,因為它容易實(shí)現,而且具備大多數期望的功能。但是假如要遍歷一個(gè)指定的站點(diǎn)或則深層嵌套的HTML文件集,用長(cháng)度優(yōu)先搜索策略則須要耗費較長(cháng)時(shí)間能夠抵達深層的HTML文件。
  綜合考慮以上幾種策略和國外信息導航系統搜索信息的特性,國內通常采用以長(cháng)度優(yōu)先搜索策略為主,線(xiàn)性搜索策略為輔的搜索策略。對于個(gè)別不被引用的或極少被引用的HTML文件,寬度優(yōu)先搜索策略可能會(huì )遺漏那些孤立的信息源,可以用線(xiàn)性搜索策略作為它的補充。
  3)聚焦搜索策略
  聚焦爬蟲(chóng)的爬行策略只跳出某個(gè)特定主題的頁(yè)面,根據“最好優(yōu)先原則”進(jìn)行訪(fǎng)問(wèn),快速、有效地獲得更多的與主題相關(guān)的頁(yè)面,主要通過(guò)內容與Web的鏈接結構指導進(jìn)一步的頁(yè)面抓取。聚焦爬蟲(chóng)會(huì )給它所下載的頁(yè)面一個(gè)評價(jià)分,根據得分排序插入到一個(gè)隊列中。最好的下一個(gè)搜索對彈出隊列中的第一個(gè)頁(yè)面進(jìn)行剖析后執行,這種策略保證爬蟲(chóng)能優(yōu)先跟蹤這些最有可能鏈接到目標頁(yè)面的頁(yè)面。決定網(wǎng)路爬蟲(chóng)搜索策略的關(guān)鍵是怎樣評價(jià)鏈接價(jià)值,即鏈接價(jià)值的估算方式,不同的價(jià)值評價(jià)方式估算出的鏈接的價(jià)值不同,表現出的鏈接的“重要程度”也不同,從而決定了不同的搜索策略。由于鏈接包含于頁(yè)面之中,而一般具有較高價(jià)值的頁(yè)面包含的鏈接也具有較高價(jià)值,因而對鏈接價(jià)值的評價(jià)有時(shí)也轉換為對頁(yè)面價(jià)值的評價(jià)。這種策略一般運用在專(zhuān)業(yè)搜索引擎中,因為這些搜索引擎只關(guān)心某一特定主題的頁(yè)面。
  【福利】填問(wèn)卷送精選測試禮包+接口測試課程!為測試行業(yè)做點(diǎn)事!

20款最常使用的網(wǎng)路爬蟲(chóng)工具推薦(2018)教程文件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 387 次瀏覽 ? 2020-05-09 08:00 ? 來(lái)自相關(guān)話(huà)題

  精品文檔20 款最常使用的網(wǎng)路爬蟲(chóng)工具推薦 (2018)網(wǎng)絡(luò )爬蟲(chóng)在現今的許多領(lǐng)域得到廣泛應用。它的作用是從任何網(wǎng)站獲取特定的或 更新的數據并儲存出來(lái)。網(wǎng)絡(luò )爬蟲(chóng)工具越來(lái)越為人所熟知,因為網(wǎng)路爬蟲(chóng)簡(jiǎn)化并 自動(dòng)化了整個(gè)爬取過(guò)程,使每個(gè)人都可以輕松訪(fǎng)問(wèn)網(wǎng)站數據資源。使用網(wǎng)路爬蟲(chóng) 工具可以使人們免予重復打字或復制粘貼,我們可以太輕松的去采集網(wǎng)頁(yè)上的數 據。此外,這些網(wǎng)路爬蟲(chóng)工具可以使用戶(hù)就能以有條不紊和快速的抓取網(wǎng)頁(yè),而 無(wú)需編程并將數據轉換為符合其需求的各類(lèi)格式。在這篇文章中網(wǎng)絡(luò )爬蟲(chóng)軟件下載,我將介紹目前比較流行的 20 款網(wǎng)路爬蟲(chóng)工具供你參考。希望你 能找到最適宜你需求的工具。1. 八爪魚(yú)八爪魚(yú)是一款免費且功能強悍的網(wǎng)站爬蟲(chóng),用于從網(wǎng)站上提取你須要的幾乎所有 類(lèi)型的數據。你可以使用八爪魚(yú)來(lái)采集市面上幾乎所有的網(wǎng)站。八爪魚(yú)提供兩種精品文檔精品文檔采集模式 - 簡(jiǎn)易模式和自定義采集模式,非程序員可以快速習慣使用八爪魚(yú)。 下載免費軟件后,其可視化界面容許你從網(wǎng)站上獲取所有文本,因此你可以下載 幾乎所有網(wǎng)站內容并將其保存為結構化格式,如 EXCEL,TXT,HTML 或你的數 據庫。 你可以使用其外置的正則表達式工具從復雜的網(wǎng)站布局中提取許多棘手網(wǎng)站的 數據,并使用 XPath 配置工具精確定位 Web 元素。
  另外八爪魚(yú)提供手動(dòng)辨識驗 證碼以及代理 IP 切換功能,可以有效的防止網(wǎng)站防采集。 總之,八爪魚(yú)可以滿(mǎn)足用戶(hù)最基本或中級的采集需求,而無(wú)需任何編程技能。2. HTTrack作為免費的網(wǎng)站爬蟲(chóng)軟件,HTTrack 提供的功能十分適宜從互聯(lián)網(wǎng)下載整個(gè)網(wǎng)站 到你的 PC。它提供了適用于 Windows,Linux,Sun Solaris 和其他 Unix 系統 的版本。它可以將一個(gè)站點(diǎn)或多個(gè)站點(diǎn)鏡像在一起(使用共享鏈接)。你可以在 “設置選項”下下載網(wǎng)頁(yè)時(shí)決定要同時(shí)打開(kāi)的連接數。你可以從整個(gè)目錄中獲取 照片,文件,HTML 代碼,更新當前鏡像的網(wǎng)站并恢復中斷的下載。精品文檔精品文檔據悉,HTTTrack 還提供代理支持,以通過(guò)可選身分驗證最大限度地提升速率。 HTTrack 用作命令行程序,或通過(guò) shell 用于私有(捕獲)或專(zhuān)業(yè)(在線(xiàn) Web 鏡像)使用。 有了這樣的說(shuō)法,HTTrack 應該是首選,并且具有中級編程技能 的人更多地使用它。3、 ScraperScraper 是 Chrome 擴展程序,具有有限的數據提取功能,但它有助于進(jìn)行在 線(xiàn)研究并將數據導入到 Google sheets。
  此工具適用于初學(xué)者以及可以使用 OAuth 輕松將數據復制到剪貼板或儲存到電子表格的專(zhuān)家。Scraper 是一個(gè)免 費的網(wǎng)路爬蟲(chóng)工具,可以在你的瀏覽器中正常工作,并手動(dòng)生成較小的 XPath 來(lái)定義要抓取的 URL。4、OutWit Hub精品文檔精品文檔Outwit Hub 是一個(gè) Firefox 添加件,它有兩個(gè)目的:搜集信息和管理信息。它 可以分別用在網(wǎng)站上不同的部份提供不同的窗口條。還提供用戶(hù)一個(gè)快速步入信 息的方式,虛擬移除網(wǎng)站上別的部份。 OutWit Hub 提供單一界面,可依照須要抓取微小或大量數據。OutWit Hub 允許你從瀏覽器本身抓取任何網(wǎng)頁(yè),甚至可以創(chuàng )建手動(dòng)代理來(lái)提取數據并按照設 置對其進(jìn)行低格。 OutWit Hub 大多功能都是免費的,能夠深入剖析網(wǎng)站,自動(dòng)搜集整理組織互聯(lián) 網(wǎng)中的各項數據,并將網(wǎng)站信息分割開(kāi)來(lái),然后提取有效信息,形成可用的集合。 但是要手動(dòng)提取精確數據就須要付費版本了,同時(shí)免費版一次提取的數據量也是 有限制的,如果須要大批量的操作,可以選擇訂購專(zhuān)業(yè)版。 5. ParseHub精品文檔精品文檔Parsehub 是一個(gè)太棒的網(wǎng)路爬蟲(chóng),支持從使用 AJAX 技術(shù),JavaScript,cookie 等的網(wǎng)站收集數據。
  它的機器學(xué)習技術(shù)可以讀取,分析之后將 Web 文檔轉換為 相關(guān)數據。 Parsehub 的桌面應用程序支持 Windows,Mac OS X 和 Linux 等系統,或者 你可以使用瀏覽器中外置的 Web 應用程序。 作為免費軟件,你可以在 Parsehub 中設置不超過(guò)五個(gè) publice 項目。付費版本 允許你創(chuàng )建起碼 20private 項目來(lái)抓取網(wǎng)站。6. ScrapinghubScrapinghub 是一種基于云的數據提取工具,可幫助數千名開(kāi)發(fā)人員獲取有價(jià) 值的數據。它的開(kāi)源視覺(jué)抓取工具,允許用戶(hù)在沒(méi)有任何編程知識的情況下抓取 網(wǎng)站。 Scrapinghub 使用 Crawlera,一家代理 IP 第三方平臺,支持繞開(kāi)防采集對策。 它使用戶(hù)就能從多個(gè) IP 和位置進(jìn)行網(wǎng)頁(yè)抓取,而無(wú)需通過(guò)簡(jiǎn)單的 HTTP API 進(jìn) 行代理管理。 Scrapinghub 將整個(gè)網(wǎng)頁(yè)轉換為有組織的內容。如果其爬蟲(chóng)工具難以滿(mǎn)足你的 要求,其專(zhuān)家團隊可以提供幫助。。精品文檔精品文檔7. Dexi.io作為基于瀏覽器的網(wǎng)路爬蟲(chóng),Dexi.io 允許你從任何網(wǎng)站基于瀏覽器抓取數據, 并提供三種類(lèi)型的爬蟲(chóng)來(lái)創(chuàng )建采集任務(wù)。
  免費軟件為你的網(wǎng)路抓取提供匿名 Web 代理服務(wù)器,你提取的數據將在存檔數據之前在 Dexi.io 的服務(wù)器上托管 兩周,或者你可以直接將提取的數據導入到 JSON 或 CSV 文件。它提供付費服 務(wù),以滿(mǎn)足你獲取實(shí)時(shí)數據的需求。8. Webhose.ioWebhose.io 使用戶(hù)才能將來(lái)自世界各地的在線(xiàn)資源抓取的實(shí)時(shí)數據轉換為各 種標準的格式。通過(guò)此 Web 爬網(wǎng)程序,你可以使用囊括各類(lèi)來(lái)源的多個(gè)過(guò)濾器 來(lái)抓取數據并進(jìn)一步提取多種語(yǔ)言的關(guān)鍵字。 你可以將刪掉的數據保存為 XML,JSON 和 RSS 格式。并且容許用戶(hù)從其存檔 訪(fǎng)問(wèn)歷史數據。此外,webhose.io 支持最多 80 種語(yǔ)言及其爬行數據結果。用 戶(hù)可以輕松索引和搜索 Webhose.io 抓取的結構化數據。精品文檔精品文檔總的來(lái)說(shuō),Webhose.io 可以滿(mǎn)足用戶(hù)的基本爬行要求。9.Import.io用戶(hù)只需從特定網(wǎng)頁(yè)導出數據并將數據導入到 CSV 即可產(chǎn)生自己的數據集。 你可以在幾分鐘內輕松抓取數千個(gè)網(wǎng)頁(yè),而無(wú)需編撰任何代碼,并按照你的要求 構建 1000 多個(gè) API。公共 API 提供了強悍而靈活的功能來(lái)以編程方法控制 Import.io 并獲得對數據的手動(dòng)訪(fǎng)問(wèn),Import.io 通過(guò)將 Web 數據集成到你自己 的應用程序或網(wǎng)站中,只需點(diǎn)擊幾下就可以輕松實(shí)現爬網(wǎng)。
   為了更好地滿(mǎn)足用戶(hù)的爬行需求,它還提供適用于 Windows,Mac OS X 和 Linux 的免費應用程序,以建立數據提取器和抓取工具,下載數據并與在線(xiàn)賬戶(hù) 同步。此外,用戶(hù)還可以每周網(wǎng)絡(luò )爬蟲(chóng)軟件下載,每天或每小時(shí)安排抓取任務(wù)。10.80legs精品文檔精品文檔80legs 是一個(gè)功能強悍的網(wǎng)路抓取工具,可以按照自定義要求進(jìn)行配置。它支 持獲取大量數據以及立刻下載提取數據的選項。80legs 提供高性能的 Web 爬 行,可以快速工作并在幾秒鐘內獲取所需的數據11. Content GraberContent Graber 是一款面向企業(yè)的網(wǎng)路爬行軟件。它容許你創(chuàng )建獨立的 Web 爬網(wǎng)代理。它可以從幾乎任何網(wǎng)站中提取內容,并以你選擇的格式將其保存為結 構化數據,包括 Excel 報告,XML,CSV 和大多數數據庫。它更適宜具有中級編程技能的人,因為它為有須要的人提供了許多強悍的腳本編 輯和調試界面。允許用戶(hù)使用 C?;?VB.NET 調試或編撰腳本來(lái)編程控制爬網(wǎng)過(guò) 程。例如,Content Grabber 可以與 Visual Studio 2013 集成,以便按照用戶(hù) 的特定需求為中級且機智的自定義爬蟲(chóng)提供最強悍的腳本編輯,調試和單元測 試。
  精品文檔精品文檔12. UiPathUiPath 是一款用于免費網(wǎng)路抓取的機器人過(guò)程自動(dòng)化軟件。它可以手動(dòng)從大多 數第三方應用程序中抓取 Web 和桌面數據。如果運行 Windows 系統,則可以 安裝機械手過(guò)程自動(dòng)化軟件。Uipath 能夠跨多個(gè)網(wǎng)頁(yè)提取表格和基于模式的數 據。 Uipath 提供了用于進(jìn)一步爬行的外置工具。處理復雜的 UI 時(shí),此方式十分有效。 Screen Scraping Tool 可以處理單個(gè)文本元素,文本組和文本塊,例如表格格 式的數據提取。 此外,創(chuàng )建智能 Web 代理不需要編程,但你內部的.NET 黑客可以完全控制數 據。精品文檔精品文檔其實(shí),在里面我提及的爬蟲(chóng)可以滿(mǎn)足大多數用戶(hù)的基本爬行需求,這些工具中各 自的功能依然存在好多差別,大家可以按照自己的需求選擇合適的。八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。精品文檔精品文檔2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。精品文檔 查看全部

  精品文檔20 款最常使用的網(wǎng)路爬蟲(chóng)工具推薦 (2018)網(wǎng)絡(luò )爬蟲(chóng)在現今的許多領(lǐng)域得到廣泛應用。它的作用是從任何網(wǎng)站獲取特定的或 更新的數據并儲存出來(lái)。網(wǎng)絡(luò )爬蟲(chóng)工具越來(lái)越為人所熟知,因為網(wǎng)路爬蟲(chóng)簡(jiǎn)化并 自動(dòng)化了整個(gè)爬取過(guò)程,使每個(gè)人都可以輕松訪(fǎng)問(wèn)網(wǎng)站數據資源。使用網(wǎng)路爬蟲(chóng) 工具可以使人們免予重復打字或復制粘貼,我們可以太輕松的去采集網(wǎng)頁(yè)上的數 據。此外,這些網(wǎng)路爬蟲(chóng)工具可以使用戶(hù)就能以有條不紊和快速的抓取網(wǎng)頁(yè),而 無(wú)需編程并將數據轉換為符合其需求的各類(lèi)格式。在這篇文章中網(wǎng)絡(luò )爬蟲(chóng)軟件下載,我將介紹目前比較流行的 20 款網(wǎng)路爬蟲(chóng)工具供你參考。希望你 能找到最適宜你需求的工具。1. 八爪魚(yú)八爪魚(yú)是一款免費且功能強悍的網(wǎng)站爬蟲(chóng),用于從網(wǎng)站上提取你須要的幾乎所有 類(lèi)型的數據。你可以使用八爪魚(yú)來(lái)采集市面上幾乎所有的網(wǎng)站。八爪魚(yú)提供兩種精品文檔精品文檔采集模式 - 簡(jiǎn)易模式和自定義采集模式,非程序員可以快速習慣使用八爪魚(yú)。 下載免費軟件后,其可視化界面容許你從網(wǎng)站上獲取所有文本,因此你可以下載 幾乎所有網(wǎng)站內容并將其保存為結構化格式,如 EXCEL,TXT,HTML 或你的數 據庫。 你可以使用其外置的正則表達式工具從復雜的網(wǎng)站布局中提取許多棘手網(wǎng)站的 數據,并使用 XPath 配置工具精確定位 Web 元素。
  另外八爪魚(yú)提供手動(dòng)辨識驗 證碼以及代理 IP 切換功能,可以有效的防止網(wǎng)站防采集。 總之,八爪魚(yú)可以滿(mǎn)足用戶(hù)最基本或中級的采集需求,而無(wú)需任何編程技能。2. HTTrack作為免費的網(wǎng)站爬蟲(chóng)軟件,HTTrack 提供的功能十分適宜從互聯(lián)網(wǎng)下載整個(gè)網(wǎng)站 到你的 PC。它提供了適用于 Windows,Linux,Sun Solaris 和其他 Unix 系統 的版本。它可以將一個(gè)站點(diǎn)或多個(gè)站點(diǎn)鏡像在一起(使用共享鏈接)。你可以在 “設置選項”下下載網(wǎng)頁(yè)時(shí)決定要同時(shí)打開(kāi)的連接數。你可以從整個(gè)目錄中獲取 照片,文件,HTML 代碼,更新當前鏡像的網(wǎng)站并恢復中斷的下載。精品文檔精品文檔據悉,HTTTrack 還提供代理支持,以通過(guò)可選身分驗證最大限度地提升速率。 HTTrack 用作命令行程序,或通過(guò) shell 用于私有(捕獲)或專(zhuān)業(yè)(在線(xiàn) Web 鏡像)使用。 有了這樣的說(shuō)法,HTTrack 應該是首選,并且具有中級編程技能 的人更多地使用它。3、 ScraperScraper 是 Chrome 擴展程序,具有有限的數據提取功能,但它有助于進(jìn)行在 線(xiàn)研究并將數據導入到 Google sheets。
  此工具適用于初學(xué)者以及可以使用 OAuth 輕松將數據復制到剪貼板或儲存到電子表格的專(zhuān)家。Scraper 是一個(gè)免 費的網(wǎng)路爬蟲(chóng)工具,可以在你的瀏覽器中正常工作,并手動(dòng)生成較小的 XPath 來(lái)定義要抓取的 URL。4、OutWit Hub精品文檔精品文檔Outwit Hub 是一個(gè) Firefox 添加件,它有兩個(gè)目的:搜集信息和管理信息。它 可以分別用在網(wǎng)站上不同的部份提供不同的窗口條。還提供用戶(hù)一個(gè)快速步入信 息的方式,虛擬移除網(wǎng)站上別的部份。 OutWit Hub 提供單一界面,可依照須要抓取微小或大量數據。OutWit Hub 允許你從瀏覽器本身抓取任何網(wǎng)頁(yè),甚至可以創(chuàng )建手動(dòng)代理來(lái)提取數據并按照設 置對其進(jìn)行低格。 OutWit Hub 大多功能都是免費的,能夠深入剖析網(wǎng)站,自動(dòng)搜集整理組織互聯(lián) 網(wǎng)中的各項數據,并將網(wǎng)站信息分割開(kāi)來(lái),然后提取有效信息,形成可用的集合。 但是要手動(dòng)提取精確數據就須要付費版本了,同時(shí)免費版一次提取的數據量也是 有限制的,如果須要大批量的操作,可以選擇訂購專(zhuān)業(yè)版。 5. ParseHub精品文檔精品文檔Parsehub 是一個(gè)太棒的網(wǎng)路爬蟲(chóng),支持從使用 AJAX 技術(shù),JavaScript,cookie 等的網(wǎng)站收集數據。
  它的機器學(xué)習技術(shù)可以讀取,分析之后將 Web 文檔轉換為 相關(guān)數據。 Parsehub 的桌面應用程序支持 Windows,Mac OS X 和 Linux 等系統,或者 你可以使用瀏覽器中外置的 Web 應用程序。 作為免費軟件,你可以在 Parsehub 中設置不超過(guò)五個(gè) publice 項目。付費版本 允許你創(chuàng )建起碼 20private 項目來(lái)抓取網(wǎng)站。6. ScrapinghubScrapinghub 是一種基于云的數據提取工具,可幫助數千名開(kāi)發(fā)人員獲取有價(jià) 值的數據。它的開(kāi)源視覺(jué)抓取工具,允許用戶(hù)在沒(méi)有任何編程知識的情況下抓取 網(wǎng)站。 Scrapinghub 使用 Crawlera,一家代理 IP 第三方平臺,支持繞開(kāi)防采集對策。 它使用戶(hù)就能從多個(gè) IP 和位置進(jìn)行網(wǎng)頁(yè)抓取,而無(wú)需通過(guò)簡(jiǎn)單的 HTTP API 進(jìn) 行代理管理。 Scrapinghub 將整個(gè)網(wǎng)頁(yè)轉換為有組織的內容。如果其爬蟲(chóng)工具難以滿(mǎn)足你的 要求,其專(zhuān)家團隊可以提供幫助。。精品文檔精品文檔7. Dexi.io作為基于瀏覽器的網(wǎng)路爬蟲(chóng),Dexi.io 允許你從任何網(wǎng)站基于瀏覽器抓取數據, 并提供三種類(lèi)型的爬蟲(chóng)來(lái)創(chuàng )建采集任務(wù)。
  免費軟件為你的網(wǎng)路抓取提供匿名 Web 代理服務(wù)器,你提取的數據將在存檔數據之前在 Dexi.io 的服務(wù)器上托管 兩周,或者你可以直接將提取的數據導入到 JSON 或 CSV 文件。它提供付費服 務(wù),以滿(mǎn)足你獲取實(shí)時(shí)數據的需求。8. Webhose.ioWebhose.io 使用戶(hù)才能將來(lái)自世界各地的在線(xiàn)資源抓取的實(shí)時(shí)數據轉換為各 種標準的格式。通過(guò)此 Web 爬網(wǎng)程序,你可以使用囊括各類(lèi)來(lái)源的多個(gè)過(guò)濾器 來(lái)抓取數據并進(jìn)一步提取多種語(yǔ)言的關(guān)鍵字。 你可以將刪掉的數據保存為 XML,JSON 和 RSS 格式。并且容許用戶(hù)從其存檔 訪(fǎng)問(wèn)歷史數據。此外,webhose.io 支持最多 80 種語(yǔ)言及其爬行數據結果。用 戶(hù)可以輕松索引和搜索 Webhose.io 抓取的結構化數據。精品文檔精品文檔總的來(lái)說(shuō),Webhose.io 可以滿(mǎn)足用戶(hù)的基本爬行要求。9.Import.io用戶(hù)只需從特定網(wǎng)頁(yè)導出數據并將數據導入到 CSV 即可產(chǎn)生自己的數據集。 你可以在幾分鐘內輕松抓取數千個(gè)網(wǎng)頁(yè),而無(wú)需編撰任何代碼,并按照你的要求 構建 1000 多個(gè) API。公共 API 提供了強悍而靈活的功能來(lái)以編程方法控制 Import.io 并獲得對數據的手動(dòng)訪(fǎng)問(wèn),Import.io 通過(guò)將 Web 數據集成到你自己 的應用程序或網(wǎng)站中,只需點(diǎn)擊幾下就可以輕松實(shí)現爬網(wǎng)。
   為了更好地滿(mǎn)足用戶(hù)的爬行需求,它還提供適用于 Windows,Mac OS X 和 Linux 的免費應用程序,以建立數據提取器和抓取工具,下載數據并與在線(xiàn)賬戶(hù) 同步。此外,用戶(hù)還可以每周網(wǎng)絡(luò )爬蟲(chóng)軟件下載,每天或每小時(shí)安排抓取任務(wù)。10.80legs精品文檔精品文檔80legs 是一個(gè)功能強悍的網(wǎng)路抓取工具,可以按照自定義要求進(jìn)行配置。它支 持獲取大量數據以及立刻下載提取數據的選項。80legs 提供高性能的 Web 爬 行,可以快速工作并在幾秒鐘內獲取所需的數據11. Content GraberContent Graber 是一款面向企業(yè)的網(wǎng)路爬行軟件。它容許你創(chuàng )建獨立的 Web 爬網(wǎng)代理。它可以從幾乎任何網(wǎng)站中提取內容,并以你選擇的格式將其保存為結 構化數據,包括 Excel 報告,XML,CSV 和大多數數據庫。它更適宜具有中級編程技能的人,因為它為有須要的人提供了許多強悍的腳本編 輯和調試界面。允許用戶(hù)使用 C?;?VB.NET 調試或編撰腳本來(lái)編程控制爬網(wǎng)過(guò) 程。例如,Content Grabber 可以與 Visual Studio 2013 集成,以便按照用戶(hù) 的特定需求為中級且機智的自定義爬蟲(chóng)提供最強悍的腳本編輯,調試和單元測 試。
  精品文檔精品文檔12. UiPathUiPath 是一款用于免費網(wǎng)路抓取的機器人過(guò)程自動(dòng)化軟件。它可以手動(dòng)從大多 數第三方應用程序中抓取 Web 和桌面數據。如果運行 Windows 系統,則可以 安裝機械手過(guò)程自動(dòng)化軟件。Uipath 能夠跨多個(gè)網(wǎng)頁(yè)提取表格和基于模式的數 據。 Uipath 提供了用于進(jìn)一步爬行的外置工具。處理復雜的 UI 時(shí),此方式十分有效。 Screen Scraping Tool 可以處理單個(gè)文本元素,文本組和文本塊,例如表格格 式的數據提取。 此外,創(chuàng )建智能 Web 代理不需要編程,但你內部的.NET 黑客可以完全控制數 據。精品文檔精品文檔其實(shí),在里面我提及的爬蟲(chóng)可以滿(mǎn)足大多數用戶(hù)的基本爬行需求,這些工具中各 自的功能依然存在好多差別,大家可以按照自己的需求選擇合適的。八爪魚(yú)——90 萬(wàn)用戶(hù)選擇的網(wǎng)頁(yè)數據采集器。 1、操作簡(jiǎn)單,任何人都可以用:無(wú)需技術(shù)背景,會(huì )上網(wǎng)才能采集。完全可視化 流程,點(diǎn)擊滑鼠完成操作,2 分鐘即可快速入門(mén)。精品文檔精品文檔2、功能強悍,任何網(wǎng)站都可以采:對于點(diǎn)擊、登陸、翻頁(yè)、識別驗證碼、瀑布 流、Ajax 腳本異步加載數據的網(wǎng)頁(yè),均可經(jīng)過(guò)簡(jiǎn)單設置進(jìn)行采集。 3、云采集,關(guān)機也可以。配置好采集任務(wù)后可死機,任務(wù)可在云端執行。龐大 云采集集群 24*7 不間斷運行,不用害怕 IP 被封,網(wǎng)絡(luò )中斷。 4、功能免費+增值服務(wù),可按需選擇。免費版具備所有功能,能夠滿(mǎn)足用戶(hù)的 基本采集需求。同時(shí)設置了一些增值服務(wù)(如私有云),滿(mǎn)足低端付費企業(yè)用戶(hù) 的須要。精品文檔

一個(gè)網(wǎng)站除了百度以外爬蟲(chóng)其爬蟲(chóng)是那什么呀

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 321 次瀏覽 ? 2020-05-06 08:02 ? 來(lái)自相關(guān)話(huà)題

  
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬
  蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web
  Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。
  實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的[1]
  。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web
  Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。
  由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方
  式,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值[1]
  。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略[1]
  。
  1)
  深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。
  爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后e799bee5baa6e79fa5e98193e78988e69d8331333361313931,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索,
  但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費[1]
  。
  2)
  廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面百度網(wǎng)絡(luò )爬蟲(chóng),處于較淺目錄層次的頁(yè)面首先被爬行。
  當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。
  這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題百度網(wǎng)絡(luò )爬蟲(chóng),實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn),不足之處在于需較長(cháng)時(shí)間能夠爬行
  到目錄層次較深的頁(yè)面[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused
  Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)[8]。
  和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群
  對特定領(lǐng)域信息的需求[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同[1]
  。
  1)
  基于內容評價(jià)的爬行策略:DeBra將文本相似度的估算方式引入到網(wǎng)路爬蟲(chóng)中,提出了 Fish Search
  算法,它將用戶(hù)輸入的查詢(xún)詞作為主題,包含查詢(xún)詞的頁(yè)面被視為與主題相關(guān),其局限性在于難以評價(jià)頁(yè)面與主題相關(guān) 度 的 高 低 。
  Herseovic對 Fish Search 算 法 進(jìn) 行 了 改 進(jìn) ,提 出 了 Sharksearch
  算法,利用空間向量模型估算頁(yè)面與主題的相關(guān)度大小[1]
  。
  2) 基于鏈接結構評價(jià)的爬行策略 :Web
  頁(yè)面作為一種半結構化文檔,包含好多結構信息,可拿來(lái)評價(jià)鏈接重要性。 PageRank
  算法最初用于搜索引擎信息檢索中對查詢(xún)結果進(jìn)行排序,也可用于評價(jià)鏈接重要性,具體做法就是每次選擇 PageRank 值較大頁(yè)面中的鏈接來(lái)訪(fǎng)問(wèn)。
  另一個(gè)借助 Web結構評價(jià)鏈接價(jià)值的方式是 HITS 方法,它通過(guò)估算每位已訪(fǎng)問(wèn)頁(yè)面的 Authority 權重和 Hub
  權重,并借此決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  3) 基于提高學(xué)習的爬行策略:Rennie 和 McCallum 將提高學(xué)習引入聚焦爬蟲(chóng),利用貝葉斯分類(lèi)器,根據整個(gè)網(wǎng)頁(yè)文本和鏈接文本對超鏈接進(jìn)行分類(lèi),為每位鏈接估算出重要性,從而決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  4) 基于語(yǔ)境圖的爬行策略:Diligenti
  等人提出了一種通過(guò)構建語(yǔ)境圖(Context Graphs)學(xué)習網(wǎng)頁(yè)之間的相關(guān)度,訓練一個(gè)機器學(xué)習系統,通過(guò)該系統可估算當前頁(yè)面到相關(guān) Web
  頁(yè)面的距離,距離越逾的頁(yè)面中的鏈接優(yōu)先訪(fǎng)問(wèn)。印度理工大學(xué)(IIT)和 IBM 研究中心的研究人員開(kāi)發(fā)了一個(gè)典型的聚焦網(wǎng)路爬蟲(chóng)。
  該爬蟲(chóng)對主題的定義既不是采用關(guān)鍵詞也不是加權矢量,而是一組具有相同主題的網(wǎng)頁(yè)。
  它包含兩個(gè)重要模塊:一個(gè)是分類(lèi)器,用來(lái)估算所爬行的頁(yè)面與主題的相關(guān)度,確定是否與主題相關(guān);另一個(gè)是凈化器,用來(lái)辨識通過(guò)較少鏈接聯(lián)接到大量相關(guān)頁(yè)面
  的中心頁(yè)面[1]
  。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指
  對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。
  和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面
  ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量
  式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集[1]
  。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地
  頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1)
  統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3)
  基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè)[1]
  。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣
  度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的
  WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定,而是采用一種自適應的方
  法依照當初爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外
  Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。
  為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè)
  ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè)[1]
  。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface
  Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。
  表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web
  是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web
  頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web
  中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源[1]
  。
  Deep Web 爬蟲(chóng)體系結構包含六個(gè)基本功能模塊
 ?。ㄅ佬锌刂破?、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個(gè)爬蟲(chóng)內部數據結構(URL 列表、LVS 表)。 其中
  LVS(Label Value Set)表示標簽/數值集合,用來(lái)表示填充表單的數據源[1]
  。
  Deep Web 爬蟲(chóng)爬行過(guò)程中最重要部份就是表單填寫(xiě),包含兩種類(lèi)型:
  1)
  基于領(lǐng)域知識的表單填寫(xiě):此方式通常會(huì )維持一個(gè)本體庫,通過(guò)語(yǔ)義剖析來(lái)選定合適的關(guān)鍵詞填寫(xiě)表單。 Yiyao Lu[25]等人提出一種獲取 Form
  表單信息的多注解方式,將數據表單按語(yǔ)義分配到各個(gè)組中
  ,對每組從多方面注解,結合各類(lèi)注解結果來(lái)預測一個(gè)最終的注解標簽;鄭冬冬等人借助一個(gè)預定義的領(lǐng)域本體知識庫來(lái)辨識 Deep Web 頁(yè)面內容,
  同時(shí)借助一些來(lái)自 Web 站點(diǎn)導航模式來(lái)辨識手動(dòng)填寫(xiě)表單時(shí)所需進(jìn)行的路徑導航[1]
  。
  2) 基于網(wǎng)頁(yè)結構剖析的表單填寫(xiě):
  此方式通常無(wú)領(lǐng)域知識或僅有有限的領(lǐng)域知識,將網(wǎng)頁(yè)表單表示成 DOM 樹(shù),從中提取表單各數組值。 Desouky 等人提出一種 LEHW
  方法,該方式將 HTML 網(wǎng)頁(yè)表示為DOM 樹(shù)方式,將表單分辨為單屬性表單和多屬性表單,分別進(jìn)行處理;孫彬等人提出一種基于 XQuery
  的搜索系統,它就能模擬表單和特殊頁(yè)面標記切換,把網(wǎng)頁(yè)關(guān)鍵字切換信息描述為三元組單元,按照一定規則排除無(wú)效表單,將 Web 文檔構造成 DOM
  樹(shù),利用 XQuery 將文字屬性映射到表單數組[1]
  。
  Raghavan 等人提出的 HIWE 系統中,爬行管理器負責管理整個(gè)爬行過(guò)程,分析下載的頁(yè)面,將包含表單的頁(yè)面遞交表單處理器處理,表單處理器先從頁(yè)面中提取表單,從預先打算好的數據集中選擇數據手動(dòng)填充并遞交表單,由爬行控制器下載相應的結果頁(yè)面[1]
  。 查看全部
  
  網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為以下幾種類(lèi)型:通用網(wǎng)路爬
  蟲(chóng)(General Purpose Web Crawler)、聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused Web
  Crawler)、增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)、深層網(wǎng)絡(luò )爬蟲(chóng)(Deep Web Crawler)。
  實(shí)際的網(wǎng)路爬蟲(chóng)系統一般是幾種爬蟲(chóng)技術(shù)相結合實(shí)現的[1]
  。
  通用網(wǎng)路爬蟲(chóng)
  通用網(wǎng)路爬蟲(chóng)又稱(chēng)全網(wǎng)爬蟲(chóng)(Scalable Web
  Crawler),爬行對象從一些種子 URL 擴充到整個(gè) Web,主要為門(mén)戶(hù)站點(diǎn)搜索引擎和小型 Web 服務(wù)提供商采集數據。
  由于商業(yè)緣由,它們的技術(shù)細節甚少公布下來(lái)。
  這類(lèi)網(wǎng)路爬蟲(chóng)的爬行范圍和數目巨大,對于爬行速率和儲存空間要求較高,對于爬行頁(yè)面的次序要求相對較低,同時(shí)因為待刷新的頁(yè)面太多,通常采用并行工作方
  式,但須要較長(cháng)時(shí)間能夠刷新一次頁(yè)面。 雖然存在一定缺陷,通用網(wǎng)路爬蟲(chóng)適用于為搜索引擎搜索廣泛的主題,有較強的應用價(jià)值[1]
  。
  通用網(wǎng)路爬蟲(chóng)的結構大致可以分為頁(yè)面爬行模塊 、頁(yè)面剖析模塊、鏈接過(guò)濾模塊、頁(yè)面數據庫、URL 隊列、初始 URL 集合幾個(gè)部份。為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略[1]
  。
  1)
  深度優(yōu)先策略:其基本方式是根據深度由低到高的次序,依次訪(fǎng)問(wèn)下一級網(wǎng)頁(yè)鏈接,直到不能再深入為止。
  爬蟲(chóng)在完成一個(gè)爬行分支后返回到上一鏈接節點(diǎn)進(jìn)一步搜索其它鏈接。 當所有鏈接遍歷完后e799bee5baa6e79fa5e98193e78988e69d8331333361313931,爬行任務(wù)結束。 這種策略比較適宜垂直搜索或站內搜索,
  但爬行頁(yè)面內容層次較深的站點(diǎn)時(shí)會(huì )導致資源的巨大浪費[1]
  。
  2)
  廣度優(yōu)先策略:此策略根據網(wǎng)頁(yè)內容目錄層次深淺來(lái)爬行頁(yè)面百度網(wǎng)絡(luò )爬蟲(chóng),處于較淺目錄層次的頁(yè)面首先被爬行。
  當同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續爬行。
  這種策略才能有效控制頁(yè)面的爬行深度,避免碰到一個(gè)無(wú)窮深層分支時(shí)未能結束爬行的問(wèn)題百度網(wǎng)絡(luò )爬蟲(chóng),實(shí)現便捷,無(wú)需儲存大量中間節點(diǎn),不足之處在于需較長(cháng)時(shí)間能夠爬行
  到目錄層次較深的頁(yè)面[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)
  聚焦網(wǎng)絡(luò )爬蟲(chóng)(Focused
  Crawler),又稱(chēng)主題網(wǎng)路爬蟲(chóng)(Topical Crawler),是指選擇性地爬行這些與預先定義好的主題相關(guān)頁(yè)面的網(wǎng)路爬蟲(chóng)[8]。
  和通用網(wǎng)路爬蟲(chóng)相比,聚焦爬蟲(chóng)只須要爬行與主題相關(guān)的頁(yè)面,極大地節約了硬件和網(wǎng)路資源,保存的頁(yè)面也因為數目少而更新快,還可以挺好地滿(mǎn)足一些特定人群
  對特定領(lǐng)域信息的需求[1]
  。
  聚焦網(wǎng)絡(luò )爬蟲(chóng)和通用網(wǎng)路爬蟲(chóng)相比,增加了鏈接評價(jià)模塊以及內容評價(jià)模塊。聚焦爬蟲(chóng)爬行策略實(shí)現的關(guān)鍵是評價(jià)頁(yè)面內容和鏈接的重要性,不同的方式估算出的重要性不同,由此引起鏈接的訪(fǎng)問(wèn)次序也不同[1]
  。
  1)
  基于內容評價(jià)的爬行策略:DeBra將文本相似度的估算方式引入到網(wǎng)路爬蟲(chóng)中,提出了 Fish Search
  算法,它將用戶(hù)輸入的查詢(xún)詞作為主題,包含查詢(xún)詞的頁(yè)面被視為與主題相關(guān),其局限性在于難以評價(jià)頁(yè)面與主題相關(guān) 度 的 高 低 。
  Herseovic對 Fish Search 算 法 進(jìn) 行 了 改 進(jìn) ,提 出 了 Sharksearch
  算法,利用空間向量模型估算頁(yè)面與主題的相關(guān)度大小[1]
  。
  2) 基于鏈接結構評價(jià)的爬行策略 :Web
  頁(yè)面作為一種半結構化文檔,包含好多結構信息,可拿來(lái)評價(jià)鏈接重要性。 PageRank
  算法最初用于搜索引擎信息檢索中對查詢(xún)結果進(jìn)行排序,也可用于評價(jià)鏈接重要性,具體做法就是每次選擇 PageRank 值較大頁(yè)面中的鏈接來(lái)訪(fǎng)問(wèn)。
  另一個(gè)借助 Web結構評價(jià)鏈接價(jià)值的方式是 HITS 方法,它通過(guò)估算每位已訪(fǎng)問(wèn)頁(yè)面的 Authority 權重和 Hub
  權重,并借此決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  3) 基于提高學(xué)習的爬行策略:Rennie 和 McCallum 將提高學(xué)習引入聚焦爬蟲(chóng),利用貝葉斯分類(lèi)器,根據整個(gè)網(wǎng)頁(yè)文本和鏈接文本對超鏈接進(jìn)行分類(lèi),為每位鏈接估算出重要性,從而決定鏈接的訪(fǎng)問(wèn)次序[1]
  。
  4) 基于語(yǔ)境圖的爬行策略:Diligenti
  等人提出了一種通過(guò)構建語(yǔ)境圖(Context Graphs)學(xué)習網(wǎng)頁(yè)之間的相關(guān)度,訓練一個(gè)機器學(xué)習系統,通過(guò)該系統可估算當前頁(yè)面到相關(guān) Web
  頁(yè)面的距離,距離越逾的頁(yè)面中的鏈接優(yōu)先訪(fǎng)問(wèn)。印度理工大學(xué)(IIT)和 IBM 研究中心的研究人員開(kāi)發(fā)了一個(gè)典型的聚焦網(wǎng)路爬蟲(chóng)。
  該爬蟲(chóng)對主題的定義既不是采用關(guān)鍵詞也不是加權矢量,而是一組具有相同主題的網(wǎng)頁(yè)。
  它包含兩個(gè)重要模塊:一個(gè)是分類(lèi)器,用來(lái)估算所爬行的頁(yè)面與主題的相關(guān)度,確定是否與主題相關(guān);另一個(gè)是凈化器,用來(lái)辨識通過(guò)較少鏈接聯(lián)接到大量相關(guān)頁(yè)面
  的中心頁(yè)面[1]
  。
  增量式網(wǎng)絡(luò )爬蟲(chóng)
  增量式網(wǎng)絡(luò )爬蟲(chóng)(Incremental Web Crawler)是 指
  對 已 下 載 網(wǎng) 頁(yè) 采 取 增 量式更新和只爬行新形成的或則早已發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它還能在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。
  和周期性爬行和刷新頁(yè)面的網(wǎng)路爬蟲(chóng)相比,增量式爬蟲(chóng)只會(huì )在須要的時(shí)侯爬行新形成或發(fā)生更新的頁(yè)面
  ,并不重新下載沒(méi)有發(fā)生變化的頁(yè)面,可有效降低數據下載量,及時(shí)更新已爬行的網(wǎng)頁(yè),減小時(shí)間和空間上的花費,但是降低了爬行算法的復雜度和實(shí)現難度。增量
  式網(wǎng)路爬蟲(chóng)的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁(yè)面集、待爬行 URL 集以及本地頁(yè)面URL 集[1]
  。
  增量式爬蟲(chóng)有兩個(gè)目標:保持本地頁(yè)面集中儲存的頁(yè)面為最新頁(yè)面和提升本地
  頁(yè)面集中頁(yè)面的質(zhì)量。 為實(shí)現第一個(gè)目標,增量式爬蟲(chóng)須要通過(guò)重新訪(fǎng)問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面內容,常用的方式有:1)
  統一更新法:爬蟲(chóng)以相同的頻度訪(fǎng)問(wèn)所有網(wǎng)頁(yè),不考慮網(wǎng)頁(yè)的改變頻度;2) 個(gè)體更新法:爬蟲(chóng)依據個(gè)體網(wǎng)頁(yè)的改變頻度來(lái)重新訪(fǎng)問(wèn)各頁(yè)面;3)
  基于分類(lèi)的更新法:爬蟲(chóng)依照網(wǎng)頁(yè)改變頻度將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類(lèi),然后以不同的頻度訪(fǎng)問(wèn)這兩類(lèi)網(wǎng)頁(yè)[1]
  。
  為實(shí)現第二個(gè)目標,增量式爬蟲(chóng)須要對網(wǎng)頁(yè)的重要性排序,常用的策略有:廣
  度優(yōu)先策略、PageRank 優(yōu)先策略等。IBM 開(kāi)發(fā)的
  WebFountain是一個(gè)功能強悍的增量式網(wǎng)路爬蟲(chóng),它采用一個(gè)優(yōu)化模型控制爬行過(guò)程,并沒(méi)有對頁(yè)面變化過(guò)程做任何統計假定,而是采用一種自適應的方
  法依照當初爬行周期里爬行結果和網(wǎng)頁(yè)實(shí)際變化速率對頁(yè)面更新頻度進(jìn)行調整。北京大學(xué)的天網(wǎng)增量爬行系統致力爬行國外
  Web,將網(wǎng)頁(yè)分為變化網(wǎng)頁(yè)和新網(wǎng)頁(yè)兩類(lèi),分別采用不同爬行策略。
  為減輕對大量網(wǎng)頁(yè)變化歷史維護造成的性能困局,它依據網(wǎng)頁(yè)變化時(shí)間局部性規律,在短時(shí)期內直接爬行多次變化的網(wǎng)頁(yè)
  ,為盡早獲取新網(wǎng)頁(yè),它借助索引型網(wǎng)頁(yè)跟蹤新出現網(wǎng)頁(yè)[1]
  。
  Deep Web 爬蟲(chóng)
  Web 頁(yè)面按存在形式可以分為表層網(wǎng)頁(yè)(Surface
  Web)和深層網(wǎng)頁(yè)(Deep Web,也稱(chēng) Invisible Web Pages 或 Hidden Web)。
  表層網(wǎng)頁(yè)是指傳統搜索引擎可以索引的頁(yè)面,以超鏈接可以抵達的靜態(tài)網(wǎng)頁(yè)為主構成的 Web 頁(yè)面。Deep Web
  是這些大部分內容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶(hù)遞交一些關(guān)鍵詞能夠獲得的 Web
  頁(yè)面。例如這些用戶(hù)注冊后內容才可見(jiàn)的網(wǎng)頁(yè)就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web
  中可訪(fǎng)問(wèn)信息容量是 Surface Web 的幾百倍,是互聯(lián)網(wǎng)上最大、發(fā)展最快的新型信息資源[1]
  。
  Deep Web 爬蟲(chóng)體系結構包含六個(gè)基本功能模塊
 ?。ㄅ佬锌刂破?、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個(gè)爬蟲(chóng)內部數據結構(URL 列表、LVS 表)。 其中
  LVS(Label Value Set)表示標簽/數值集合,用來(lái)表示填充表單的數據源[1]
  。
  Deep Web 爬蟲(chóng)爬行過(guò)程中最重要部份就是表單填寫(xiě),包含兩種類(lèi)型:
  1)
  基于領(lǐng)域知識的表單填寫(xiě):此方式通常會(huì )維持一個(gè)本體庫,通過(guò)語(yǔ)義剖析來(lái)選定合適的關(guān)鍵詞填寫(xiě)表單。 Yiyao Lu[25]等人提出一種獲取 Form
  表單信息的多注解方式,將數據表單按語(yǔ)義分配到各個(gè)組中
  ,對每組從多方面注解,結合各類(lèi)注解結果來(lái)預測一個(gè)最終的注解標簽;鄭冬冬等人借助一個(gè)預定義的領(lǐng)域本體知識庫來(lái)辨識 Deep Web 頁(yè)面內容,
  同時(shí)借助一些來(lái)自 Web 站點(diǎn)導航模式來(lái)辨識手動(dòng)填寫(xiě)表單時(shí)所需進(jìn)行的路徑導航[1]
  。
  2) 基于網(wǎng)頁(yè)結構剖析的表單填寫(xiě):
  此方式通常無(wú)領(lǐng)域知識或僅有有限的領(lǐng)域知識,將網(wǎng)頁(yè)表單表示成 DOM 樹(shù),從中提取表單各數組值。 Desouky 等人提出一種 LEHW
  方法,該方式將 HTML 網(wǎng)頁(yè)表示為DOM 樹(shù)方式,將表單分辨為單屬性表單和多屬性表單,分別進(jìn)行處理;孫彬等人提出一種基于 XQuery
  的搜索系統,它就能模擬表單和特殊頁(yè)面標記切換,把網(wǎng)頁(yè)關(guān)鍵字切換信息描述為三元組單元,按照一定規則排除無(wú)效表單,將 Web 文檔構造成 DOM
  樹(shù),利用 XQuery 將文字屬性映射到表單數組[1]
  。
  Raghavan 等人提出的 HIWE 系統中,爬行管理器負責管理整個(gè)爬行過(guò)程,分析下載的頁(yè)面,將包含表單的頁(yè)面遞交表單處理器處理,表單處理器先從頁(yè)面中提取表單,從預先打算好的數據集中選擇數據手動(dòng)填充并遞交表單,由爬行控制器下載相應的結果頁(yè)面[1]
  。

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久