• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python的爬蟲系統(tǒng)設(shè)計與實現(xiàn)

      2020-09-10 00:11:40呂定輝
      商業(yè)2.0-市場與監(jiān)管 2020年4期
      關(guān)鍵詞:爬蟲策略系統(tǒng)

      摘要:隨著互聯(lián)網(wǎng)技術(shù)發(fā)展,網(wǎng)絡(luò)所承載的數(shù)據(jù)逐漸體現(xiàn)其價值,且網(wǎng)絡(luò)數(shù)據(jù)體量日益倍增,對網(wǎng)絡(luò)數(shù)據(jù)的利用越來越受到各行各業(yè)的重視。該網(wǎng)絡(luò)爬蟲系統(tǒng)以基于Python語言的Scrapy網(wǎng)絡(luò)爬蟲框架技術(shù)為基礎(chǔ),綜合考慮對反爬機制的應(yīng)對措施及相關(guān)系統(tǒng)優(yōu)化,滿足一定的爬取效率要求,便于數(shù)據(jù)挖掘等數(shù)據(jù)研究利用。系統(tǒng)主要實現(xiàn)了實體管道模塊、爬蟲業(yè)務(wù)模塊、中間件模塊、Cookies池模塊。過程中涉及到的關(guān)鍵技術(shù)主要包括Cookies池服務(wù)、反爬蟲策略、頁面解析、Selenium+ChromeDriver實現(xiàn)模擬訪問、MongoDB實現(xiàn)數(shù)據(jù)持久化存儲等。

      關(guān)鍵詞:爬蟲;Scrapy框架;Selenium+ChromeDriver;MongoDB

      1.項目研究的背景及意義

      隨著大數(shù)據(jù)發(fā)展戰(zhàn)略的逐步推進,打破信息孤島,合理整合利用數(shù)據(jù)信息成為信息融合技術(shù)的關(guān)鍵要素[1]。而及時掌握各種消息并對其進行分析和處理具有重大社會意義。隨著國家持續(xù)推進全國網(wǎng)絡(luò)安全和信息化建設(shè),互聯(lián)網(wǎng)信息技術(shù)不斷創(chuàng)新發(fā)展,經(jīng)濟數(shù)字化轉(zhuǎn)型已成大勢所趨[2]。隨著網(wǎng)絡(luò)效應(yīng)的不斷增強,微博等用戶群體的不斷擴大,其中某些平臺每天都會有過億的博文發(fā)送量及轉(zhuǎn)發(fā)量,在網(wǎng)絡(luò)數(shù)據(jù)產(chǎn)生和消費中占到很大比例。

      網(wǎng)絡(luò)爬蟲技術(shù)作為對網(wǎng)絡(luò)數(shù)據(jù)提取的基本技術(shù)在近些年隨網(wǎng)絡(luò)信息技術(shù)發(fā)展也不斷推陳出新,既是作為搜索引擎的基礎(chǔ)結(jié)構(gòu)推動著互聯(lián)網(wǎng)網(wǎng)頁瀏覽訪問的基本進程,又為新時代數(shù)據(jù)技術(shù)提供著多樣化的功能性應(yīng)用場景[3]。Python語言作為當今流行語言之一,以廣泛的開源庫支持和語言特性與爬蟲系統(tǒng)開發(fā)有著很高的契合度[4]。

      信息數(shù)據(jù)利用價值越來越重視,諸多門戶網(wǎng)站開始并逐步加強對可能的數(shù)據(jù)訪問行為進行判斷和分析,對其中的非法訪問采取很多有效防范措施,因此在合法的應(yīng)用范圍內(nèi)相關(guān)網(wǎng)絡(luò)爬蟲需要遵循相應(yīng)的數(shù)據(jù)訪問方式,本文基于Scrapy網(wǎng)絡(luò)爬蟲框架、Python語言等相關(guān)技術(shù),并結(jié)合目前主流社交平臺研究、設(shè)計并開發(fā)了網(wǎng)絡(luò)爬蟲系統(tǒng),實現(xiàn)數(shù)據(jù)的爬取。

      2.爬蟲的種類及爬取策略

      根據(jù)所構(gòu)建的爬蟲系統(tǒng)所應(yīng)用的場景,常將爬蟲技術(shù)分為三類:通用爬蟲、聚焦爬蟲、增量式爬蟲。通用爬蟲通常應(yīng)用在搜索引擎系統(tǒng)中,聚焦爬蟲通常應(yīng)用于對特定人群提供主題信息服務(wù)的系統(tǒng)中,增量式爬蟲主要應(yīng)用于特定網(wǎng)站的數(shù)據(jù)持續(xù)獲取系統(tǒng)中。

      主要的爬行策略有深度優(yōu)先爬行策略、廣度優(yōu)先爬行策略、大站優(yōu)先策略、反鏈策略、其他爬行策略等。除了以上這些策略,還有一些特定場景下比較適用的爬蟲策略如OPIC策略、PartialPageRank策略等[5]。

      反爬機制指的是相關(guān)門戶網(wǎng)站為了防止網(wǎng)站重要數(shù)據(jù)的泄露或網(wǎng)站異常訪問造成不利影響,在網(wǎng)站設(shè)計時運用一些策略或技術(shù)手段限制用戶訪問,通過對敏感行為的分析和控制來防止爬蟲工具對網(wǎng)站的異常訪問。

      在爬取過程中需要充分考慮目標網(wǎng)站的反爬機制,做到合理合法的獲取數(shù)據(jù)。

      3.系統(tǒng)使用到的關(guān)鍵技術(shù)

      URL去重可以以下集中策略來實現(xiàn)(1)數(shù)據(jù)庫去重,(2)集合去重,(3)基于集合的Hash優(yōu)化去重,(4)布隆過濾器。

      網(wǎng)頁解析分為靜態(tài)頁面解析和動態(tài)頁面解析。

      數(shù)據(jù)庫采用MongoDB。數(shù)據(jù)存儲采用BSON格式來進行以獲取更快的速度和更高的安全性。

      網(wǎng)站登錄機制采用模擬登錄方法來進行。

      4.需求分析及系統(tǒng)實現(xiàn)

      系統(tǒng)總體來看有如下幾點需求:(1)克服反爬機制,(2)實現(xiàn)爬蟲邏輯,(3)數(shù)據(jù)存儲。系統(tǒng)對硬件資源的需求主要取決于爬蟲系統(tǒng)的執(zhí)行效率要求,依據(jù)已有的相關(guān)爬蟲項目建設(shè)情況來看,實現(xiàn)單日萬級、十萬級、百萬級、千萬級爬取量所要求硬件條件逐漸提升。開發(fā)上充分考慮所需要的時間周期,為在有效期限內(nèi)完成項目的有效成品,本系統(tǒng)采用增量式開發(fā),在項目初期完成基本業(yè)務(wù)邏輯實現(xiàn)系統(tǒng)基本功能,而后通過擴展接口不斷提高系統(tǒng)執(zhí)行效率和擴展功能。

      本系統(tǒng)的非功能性需求主要體現(xiàn)在運行使用的穩(wěn)定性和擴展性等方面。例如:執(zhí)行效率、可靠性、可擴展性等。

      作為單機應(yīng)用系統(tǒng)開發(fā),項目采用分層架構(gòu),結(jié)合Scrapy框架技術(shù)在具體系統(tǒng)分層上有五個層次,系統(tǒng)架構(gòu)如圖1所示。

      在軟件程序設(shè)計方面所要實現(xiàn)的具體的功能模塊主要在中間件層、業(yè)務(wù)邏輯層與管道層。

      對于本系統(tǒng)所爬取的數(shù)據(jù),常常是半結(jié)構(gòu)型數(shù)據(jù),用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一方面會對系統(tǒng)執(zhí)行效率有較大影響,另一方面也不利于數(shù)據(jù)的后續(xù)使用,因此本系統(tǒng)采用基于NoSQL查詢語句的MongoDB數(shù)據(jù)庫。

      5.總結(jié)與展望

      本系統(tǒng)以基于Python語言的Scrapy網(wǎng)絡(luò)爬蟲框架為基礎(chǔ),利用Selenium + Chrome模擬登陸、頁面解析技術(shù)、UA偽裝、MongoDB等技術(shù),具體實現(xiàn)了實體管道、爬蟲、中間件、服務(wù)池等模塊,完成了對用戶信息、用戶關(guān)系、用戶發(fā)表信息等數(shù)據(jù)的爬取和持久化存儲。

      系統(tǒng)不足之處:在實現(xiàn)上系統(tǒng)采用了單機架構(gòu),數(shù)據(jù)爬取效率在一定程度上受到了限制。

      參考文獻:

      [1]KEVIN.網(wǎng)絡(luò)爬蟲技術(shù)原理[J].計算機與網(wǎng)絡(luò),2018,44(10).

      [2]高宇,楊小兵.基于聚焦型網(wǎng)絡(luò)爬蟲的影評獲取技術(shù)[J].中國計量大學學報,2018,29(3).

      [3][美]瑞安·米切爾(RyanMitchell).Python網(wǎng)絡(luò)爬蟲權(quán)威指南第2版.人民郵電出版社,2019.

      [4]楊建.分布式網(wǎng)絡(luò)爬蟲技術(shù)及對其安全防御研究[J].網(wǎng)絡(luò)安全技術(shù)與用,2018(04):6-7

      [5]汪兵.基于Scrapy框架的分布式爬蟲系統(tǒng)設(shè)計與實現(xiàn)[D].合肥工業(yè)大學,2019.

      基金項目:2017年度河南省高等學校青年骨干教師培養(yǎng)計劃項目“基于XSLT和STACS的高校云智慧校園建設(shè)研究”(項目編號:2017GGJS292)。

      作者簡介:呂定輝(1980-),男,碩士研究生/講師,研究方向:計算機網(wǎng)絡(luò)技術(shù)。

      猜你喜歡
      爬蟲策略系統(tǒng)
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
      Smartflower POP 一體式光伏系統(tǒng)
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      WJ-700無人機系統(tǒng)
      ZC系列無人機遙感系統(tǒng)
      北京測繪(2020年12期)2020-12-29 01:33:58
      例談未知角三角函數(shù)值的求解策略
      我說你做講策略
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      電子測試(2018年1期)2018-04-18 11:53:04
      高中數(shù)學復(fù)習的具體策略
      連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
      东海县| 保亭| 黄冈市| 陇西县| 武城县| 隆昌县| 兴文县| 尖扎县| 河津市| 克拉玛依市| 韶关市| 清水河县| 闸北区| 东辽县| 老河口市| 镇平县| 乌兰县| 波密县| 拜泉县| 平遥县| 清新县| 昌邑市| 静安区| 嘉义县| 龙泉市| 苏尼特右旗| 敦化市| 调兵山市| 青龙| 织金县| 蒙自县| 九江市| 元氏县| 桐城市| 罗甸县| 永和县| 雷山县| 连江县| 玉门市| 浙江省| 同心县|