999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Scrapy的信息采集與分析

2020-01-03 10:09:02謝鋼
現代信息科技 2020年14期
關鍵詞:數據庫信息

謝鋼

摘? 要:針對攜號轉網服務背景下電信企業的客戶維系和客戶精細化服務需求,以及電信運營商對網上不良信息監測和清理的需要,以國內主流社交媒體為主要研究對象,進行網絡爬蟲策略的研究與實現。文章對基于Python的Scrapy爬蟲框架技術進行了分析,設計和實現了基于Scrapy的微博信息采集與分析爬蟲,其能按照關鍵詞進行爬取和分析;爬蟲使用非關系型數據庫MongoDB存儲數據、利用Selenium實現模擬登陸、結合Redis數據庫存儲爬取隊列。

關鍵詞:Scrapy;爬蟲;微博;MongoDB

Abstract:In view of the demand of telecommunication enterprise customer maintenance and refined customer service under the background of carrying signal to network service,and telecom operators need to monitor and clean up bad information on the internet,taking domestic mainstream social media as the main research object,this paper studies and implements the strategy of web crawler. This paper analyzes the framework technology of Scrapy crawler based on Python,designs and implements a crawler for microblog information collection and analysis based on Scrapy. The system crawls and analyzes according to keywords,uses non-relational database MongoDB to store data,uses Selenium to realize simulated login,and stores crawling queue with Redis database.

Keywords:Scrapy;crawler;microblog;MongoDB

0? 引? 言

在全業務大環境下,個人客戶市場是國內電信整體市場的核心根據地,同時也是中國電信的薄弱領域和努力方向。2019年11月27日,工信部召開攜號轉網啟動儀式,即日起,攜號轉網正式在全國提供服務,電信業務經營者不得干涉用戶的自主選擇。號碼可攜制度促進了運營商間的競爭,提高了用戶使用的方便性,同時客戶的維系挽留成為電信企業的重中之重。研究網絡爬蟲技術,采集和分析國內主流社交媒體的大量數據,弄清個人和企業客戶需求,聚焦影響客戶感知的主要矛盾,是開展科學化精細化客戶服務、提升公司服務能力、完善客戶維系關懷機制的核心實現技術。

隨著互聯網技術的高速發展,社交類應用,尤其是微博這一新興媒體的快速發展,也出現了一些新的問題。一是容易造成隱私和個人信息泄露等網絡安全問題;二是一些不良有害信息的傳播,主要是以微博、即時通信等為載體,微博作為即時交互平臺,傳播性廣、即時性強,整合了博客、即時通信、社交網絡等技術優點,在帶來便利溝通的同時,也容易被非法利用。2014年,全國“掃黃打非”工作小組辦公室等多部門聯合下發《關于開展打擊網上淫穢色情信息專項行動的公告》,要求“基礎電信運營企業、網絡接入服務企業立即開展自查自糾,主動清理網上淫穢色情信息或鏈接”[1],通過網絡爬蟲技術獲取微博源數據,是解決快速定位信息源、監測網絡不良信息的主要技術途徑,利用自媒體主體的微博信息,研究者還可以完成數據分析、輿情監測、熱點預測、情感分析等工作[2]。網絡爬蟲技術可以實現自動化地獲取大批量數據。

本人就職于中國電信股份有限公司婁底分公司網絡運營部,因為實際工作中對網絡數據的分析需要,一直關注和研究爬蟲技術,并使用Python語言實現了基于Scrapy框架技術的爬蟲系統功能。

1? Scrapy框架

網絡爬蟲,是一種按照一定規則自動抓取Web信息的程序或者腳本。粗略來看,爬蟲的功能和實現過程包括構造目標URL、模擬瀏覽器偽造請求頭部、發起請求、解析數據、清洗并存儲數據、繞過反爬機制(使用IP代理、破解驗證碼、模擬登錄等)等。Scrapy框架為爬蟲功能的實現提供了一套解決方案,它將爬蟲按照工作流程分為五個部分:Scrapy引擎、爬蟲、下載器、調度器和數據隊列[3]。在正式發起請求前,添加下載中間件處理:可以在向服務器請求數據之前,加上User-Agent偽裝瀏覽器,或者加上Cookie信息模擬登陸、維持訪問狀態。在服務器返回數據到下載器后,下載中間件也可以判斷返回的狀態,然后對Response對象做進一步的處理。服務器返回的數據最終到達爬蟲模塊。在對返回的數據進行簡單處理后可以用Yield的方式將其提交到Item Pipeline模塊,進行完整的數據清洗和數據存儲。

模塊化的設計使得Scrapy框架能夠滿足大規模的網絡爬蟲需求,開發者按照Scrapy的處理流程和工作邏輯,完成相應的代碼書寫即可。此外,Scrapy框架也可以方便地實現具備分布式爬蟲能力的系統,結合Redis服務器,將調度器的URL隊列存儲到公網上的Redis服務器即可。所有運行同一爬蟲的分布式機器都將從Redis服務器中提取URL下載,爬取效率將大大提升。Redis中存儲的URL信息可以持久化保存,如果爬蟲碰到異常情況關閉,待爬蟲程序重新啟動后,不需要再從0開始爬取,直接從Redis數據庫的隊列中繼續提取URL,即可恢復之前的爬取進度[4]。

2? 爬蟲系統總體設計

經過調查和需求分析,爬蟲系統設計為六大功能模塊:模擬登陸獲取Cookie、爬取指定話題下的實時微博、爬取基于高級搜索功能下的話題微博、爬取指定用戶的所有微博、爬取用戶信息、數據分析與可視化。該系統主要實現爬取制定話題下的實時微博及其個人信息并進行可視化分析的功能。

3? 瀏覽器自動登錄功能設計與實現

微博是一個動態網頁程序,登錄后才能搜索或者查看微博用戶的信息,Selenium是一個基于瀏覽器的測試工具,用于測試Web程序。與直接發送表單數據進行交互的爬蟲不同,Selenium直接使用瀏覽器進行操作,模擬人工點擊、拖動和填寫等瀏覽網頁的操作。目前很多網站程序使用JS對用戶提交的表單數據進行加密處理,在加密過程中還使用了時間戳混淆、公鑰加密等方式,使用傳統表單交互需要花大量時間去分析程序的加密邏輯,自動登錄代碼需要模擬這個加密邏輯;當網站更改加密方式后,開發者需要再次分析新的加密邏輯,并編寫新的代碼去加以適配和破解。使用Selenium可以簡單高效地解決瀏覽器模擬自動登錄問題。該功能模塊的實現過程為:通過Selenium打開瀏覽器,訪問對應的登錄URL,定位到輸入表單,輸入用戶名和密碼,最后使用Click模擬點擊登錄按鈕。登錄成功后直接將Cookie信息保存到數據庫中,待下次訪問需要登錄的頁面直接將Cookie信息添加進請求頭即可。如果登錄過程中需要驗證碼,可以人工進行識別干預,也可以使用OCR文字識別,或者調用百度、騰訊的識別API輸入驗證碼。

4? 數據解析

4.1? 正則表達式的使用

正則表達式(Regular Expression),可以用于檢索、替換匹配搜索規則的文本。設置正則表達式的方法與Windows中資源管理器的通配符搜索類似。使用正則表達式可以快速、高效地將網頁中的內容提取出來。Python中的正則表達式有search、match、findall、sub四個常用的方法。其中search方法會掃描整個文本,并將第一個匹配的結果返回,沒匹配到信息則返回None值。match方法從第一個字符開始查找,如果文本中包含表達式的子串,則返回Match對象,沒有則返回None。findall方法會在全文中查找符合表達式的字符串,然后返回結果列表,非常適合提取HTML頁面。sub方法用于刪除指定格式的字符串,可以用在數據清洗階段。

4.2? XPath數據抓取

XPath(XML Path Language)是一種可以在XML文檔里查找信息的工具,最初只用于檢索XML文檔,現在同樣適用于查找HTML文檔。XPath的功能非常強大,可以將HTML的元素作為節點,通過簡潔的路徑選擇表達式完成信息的抽取。此外,其還提供100多個內建函數,可以檢索字符串、數字、時間以及節點和序列。一個HTML文檔有許多的標簽節點,節點中有id、class等屬性信息。各個節點之間還有層級關系,根據這個特點,可以通過XPath來定位節點并抓取目標數據。

5? 數據存儲使用MongoDB數據庫

MongoDB數據庫類似于JSON的格式存儲數據,組織數據的結構為“數據庫”—“集合”—“文檔”—“字段”,其中集合類似于關系型數據庫中的表,文檔相當于關系型數據庫中的一條記錄,字段則是關系型數據庫中的列。與關系型數據庫不同,MongoDB的集合里面,每個文檔的數據類型不用事先定義,數據中的字段可以隨意變動,因此并發寫入速度比傳統的關系型數據庫高很多。MongoDB數據庫中文檔的字段以鍵值對的形式組織[5],有利于爬蟲數據的保存和讀取。Python操作MongoDB的語法和原生的語法相似,可以將其內容快速地遷移到Python當中來。

爬蟲將數據爬取出來后需要保存到本地,系統選擇MongoDB作為存儲數據庫。根據爬取數據類型不同,共定義三種數據結構,分別為存儲微博信息、存儲用戶信息和存儲指定話題每天微博數量的數據類型。

6? 可視化分析功能實現

繪圖在數據可視化分析工作中非常重要,通過數據可視化,可以直觀地看出數據的關聯性和變化趨勢,還可以幫助研究者找出樣本中的異常值、得出有關模型的思路等。Matplotlib是基于Python的一個開源項目,旨在為Python提供數據繪圖包,是Python中非常底層的數據可視化庫,可以和圖形工具包如PyQt、WxPython一起使用[6]。Matplotlib具有高度可定制化的特點,支持的圖表資源種類豐富、簡單易用、出圖質量可達到出版質量級別;其支持散點圖、餅圖、條形圖、折線圖、極坐標圖等2D圖形,同時也支持繪制3D立體圖形。繪制的圖像可以保存成多種文件格式,如PNG、PDF、PS、EPS和SVG等格式。

爬蟲系統數據分析模塊一共分為四個部分,統計發布微博的終端、統計某話題下發布微博的地區、按時間統計某話題下微博發布的趨勢、根據微博的文本內容生成詞云圖。實現流程為:首先定義基于Matplotlib的繪圖函數,傳入字典元素,繪制折線圖和條形圖;再定義基于WordCloud第三方庫的詞云函數,輸入詞頻的字典元素,輸出詞云圖;然后定義利用Jieba分詞技術統計詞頻的函數,統計出詞頻信息,以字典的形式輸出;最后分別定義實現數據分析四個模塊的函數,查詢出所需要的數據。篇幅所限,此處略去功能實現代碼。

7? 結? 論

針對電信公司業務和服務需求,研究基于Python的Scrapy爬蟲框架理論及實現技術,研究內容涉及爬蟲的原理、自動化測試、非關系型數據庫、數據分析、加解密、Python程序設計等相關知識,設計和實現的爬蟲系統通過爬取微博的關鍵詞搜索頁面、用戶主頁面實現話題下微博的爬取,按要求提取用戶需要的內容,這些數據可以幫助電信公司研究人員分析客戶需求和監測不良信息。

參考文獻:

[1] 時鎮軍.互聯網不良信息監控在電信運營商的研究與應用 [J].江蘇通信,2020,36(2):49-52.

[2] 陳興蜀,常天祐,王海舟,等.基于微博數據的“新冠肺炎疫情”輿情演化時空分析 [J].四川大學學報(自然科學版),2020,57(2):409-416.

[3] 林紅靜,黃夢醒.基于微博信息的關鍵詞庫爬蟲策略 [J].海南大學學報(自然科學版),2016,34(2):112-120.

[4] 崔慶才.Python3網絡爬蟲開發實戰 [M].北京:人民郵電出版社,2018.

[5] 謝乾坤.左手MongoDB,右手Redis——從入門到商業實戰 [M].北京:電子工業出版社,2019.

[6] 楊迎.基于Python語言的Web數據挖掘與分析研究 [J].現代信息科技,2019,3(23):63-65.

作者簡介:謝鋼(1975—),男,漢族,湖南婁底人,中級工程師,本科,研究方向:信息系統管理、網絡及接入網技術。

猜你喜歡
數據庫信息
數據庫
財經(2017年15期)2017-07-03 22:40:49
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
數據庫
財經(2010年20期)2010-10-19 01:48:32
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 免费看a级毛片| 国产成人免费观看在线视频| 色哟哟国产精品| аv天堂最新中文在线| 最新国产高清在线| 朝桐光一区二区| 色婷婷成人| 亚洲第一视频网| 亚洲国产精品无码AV| 91无码视频在线观看| 十八禁美女裸体网站| 国产无码精品在线播放| 天天干天天色综合网| 精品无码视频在线观看| 爱做久久久久久| 日韩人妻少妇一区二区| 亚洲天堂网在线视频| 一级一级特黄女人精品毛片| 国产91视频免费观看| 国产精鲁鲁网在线视频| 国产97色在线| 久青草免费在线视频| 999福利激情视频| 51国产偷自视频区视频手机观看| 精品久久久久久中文字幕女| 一本久道久综合久久鬼色| 天堂网亚洲系列亚洲系列| 婷婷色一区二区三区| 国产亚洲欧美在线视频| 国产成人精品在线| 尤物在线观看乱码| 欧美日韩亚洲综合在线观看| 久久久受www免费人成| 2021国产乱人伦在线播放| 久久这里只有精品2| 日韩成人免费网站| 成人中文在线| 国产精品极品美女自在线网站| 制服丝袜 91视频| av一区二区三区高清久久| 天天综合网站| 91麻豆精品视频| 91精品小视频| 亚洲人成网18禁| 久久青草视频| 日韩东京热无码人妻| 久久综合色天堂av| 国产理论最新国产精品视频| 午夜精品区| 538国产视频| 国产精品一区不卡| 青青草原国产| 2020久久国产综合精品swag| 热久久这里是精品6免费观看| 日韩黄色大片免费看| 国产亚洲欧美日韩在线一区二区三区| 国产视频一二三区| 国产精品伦视频观看免费| 秋霞午夜国产精品成人片| 国产原创第一页在线观看| 又污又黄又无遮挡网站| 真人高潮娇喘嗯啊在线观看| 欧美有码在线| 九色91在线视频| 中文字幕无码电影| 亚洲天堂视频在线播放| 欧美日韩午夜| 中文字幕有乳无码| 2024av在线无码中文最新| 亚洲色图另类| 国产精品成人不卡在线观看| 亚洲天堂777| 久久久亚洲国产美女国产盗摄| 国产精品性| av一区二区三区在线观看| 亚洲日本韩在线观看| 国产在线观看99| 欧洲一区二区三区无码| 毛片大全免费观看| 国产a v无码专区亚洲av| 成人精品视频一区二区在线 | 久久国产精品波多野结衣|