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

基于Python的網絡關鍵字熱度獲取工具的研究與實現

2018-02-26 12:23:22孟亞茹姚凱學安世博
電子技術與軟件工程 2018年17期

孟亞茹 姚凱學 安世博

摘要

搜索指數,是以各大搜索網站海量網民行為數據作為基礎的數據分析統計結果,是衡量詞條搜索熱度的重要指標,對數據分析具有重要的參考價值。本文詳細介紹了一個基于Python的網絡關鍵字熱度獲取工具的研究與實現過程,用以獲取現有指數平臺的指數數據。文中以搜狗指數、微信媒體指數為例,詳細敘述了如何尋找URL入口、獲取并解析數據、以及如何清洗數據的技術與方法。測試結果表明,該爬蟲工具可以準確地獲取目標關鍵字在自定義時間段內的指數熱度情況,具有實用價值。

【關鍵詞】Python 爬蟲 指數 數據獲取

搜索指數,是指以網民的搜索行為為基礎,對其搜索內容以及搜索次數進行統計分析,得出的該目標關鍵字被搜索的頻次。搜索指數不僅可以反映出某關鍵字在特定網站的搜索規模,還可以反應出該時間段內熱度漲跌態勢,準確及時反映突發事件網絡輿情的變化情況。搜索指數的出現,對市場分析與決策具有重要且深遠的意義。

網絡爬蟲(Web Crawler)技術是一種快速獲取搜索指數相關信息的全新手段。本文在概述網絡爬蟲關鍵技術的基礎上,以“搜狗搜索”為研究對象,詳細介紹了一款基于網絡爬蟲技術的搜索指數獲取工具的研究與實現。

1 關鍵技術

1.1 Python爬蟲

Python是一款開源的,可以運行在任何主流操作系統中的解釋性高級編程語言。Python簡潔的語法可以高效的節約開發者的開發時間以及開發成本。網絡爬蟲是用來獲取網絡數據的重要工具。關于網絡爬蟲技術的研究不計其數。爬蟲程序使用Python的一個重要因素,就是Python為爬蟲開發提供了豐富的標準庫以及強大的第三方庫。爬蟲程序完全模擬瀏覽器訪問網站的流程,首先使用requests庫請求網站,得到網站所有的HTML數據,Requests的Get,Post等四種請求方式,包括了所有的HTTP/HTPPS的請求方式,比其他語言(C、C++、Java)方便快捷。然后辨別返回的結果,如果返回的是HTML格式的數據,則可以使用lxml庫去解析網頁,通過節點提取等一些常規方法,提取出真正需要的數據。如果返回的是json格式的數據,則可以通過json解析獲取數據。這兩步包含了數據抓取的核心的部分,基本可以得到想要的數據。

1.2 通用爬蟲工作流程

網絡爬蟲的基本工作流程如下:

(1)選取合適的起始URL,放入URL隊列;

(2)從待爬取URL隊列中取出URL,由網頁下載模塊下載URL對應的網頁HTML,傳遞給數據解析模塊之后將URL放進己爬取URL隊列;

(3)數據解析模塊解析收到的HTML,查找標簽,提取出標簽內所需數據,傳遞至數據清洗模塊,經提取后將URL傳遞至URL調度模塊;

(4)調度模塊收到解析模塊傳遞過來的URL后,將其和己抓取的URL隊列對比,進行去重處理,篩選出未爬取的URL放入待爬取URL隊列;

(5)網絡爬蟲系統在2~4步循環,直到待爬取隊列中的URL全部爬取完畢,或者用戶終止進程;

(6)數據清洗模塊發現并糾正數據文件中可識別的錯誤,最終將數據存入數據庫。

2 研究對象、數據來源及目標

2.1 研究對象

指數平臺是新型的平民化的數據展示平臺,他旨在普及大數據在民眾日常生活中的使用。搜狗指數是以搜狗搜索平臺上海量網民行為數據為基礎的數據分享平臺,為用戶提供數據支持。本文以搜狗指數為研究對象,詳細描述網絡爬蟲技術的應用方法。

數據來源:此次研究為搜狗指數,實現定向爬取,目標地址為http://sogou.index.com(搜狗指數官網)。

2.2 爬取目標

本文以爬取搜狗指數網站“我不是藥神”詞條為案例,詳述通過網絡爬蟲技術獲取“我不是藥神”的搜狗指數的過程與方法,以及在爬取數據過程中會出現的問題和解決策略。

3 實現過程與技術難點

3.1 數據搜索入口URL

目標地址為http://index.sogou.com(搜狗指數)與其他網站相比具有特殊性,即數據請求接口為獨立網址,需通過抓包的方式獲取精確的數據接口并傳入需求數據:接口為http://index.sogou.com/getDateData,需傳入的數據為:關鍵字(keyword),起始日期(start_date),結束日期(end_date),代碼如下:

import datetime

oft=“http://index.sogou.com/getDateData”

#把數據的字符串類型的時間轉換成時間格式

params={

'kwdNamesStr':keyword,

'start])ate':start_date,

'endDate':end_date,

'dataType':'SEARCH_ALL',

'queryType':'INPUT',

}

五個字段從上到下的含義分別為:

'kwdNamesStr':搜索的關鍵字,'startDate':請求數據的起始日期,'endDate'::請求數據的起始日期,'dataType':請求的數據類型,'queryType'查詢的方式。

3.2 獲取網頁數據

使用requests的get方法。requests的get方法將傳入數據寫進字典格式的數據結構并傳給requests方法的params字段。該網站的請求必須有瀏覽器信息,所以需要給請求添加請求頭,模仿瀏覽器對網站進行訪問。請求成功之后,返回的數據為json字符串,目標數據包含在其中,實現代碼如下:

import requests

HEADERS={

'Accept':'*/*',

'Accept-Encoding':'gzip,deflate',

'Accept-Language':'zh-CN,zh;q-0.9',

'Connection':'keep-alive',

'Host':'index.sogou.com',

'User-Agent':'Mozilla/5.0(Windows NT6.1;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/62.0.3202.75 Safari/537.36',

}

#防止程序假死,添加請求超時

web_data=requests.get(URL,headers=HEADERS,params=params,timeout=30)

return web_data

3.3 解析數據

通過解析得到的是]son字符串,所以需要把將其轉換成lson匹配的數據類型,然后使用Python的字典數據獲取方法,得到目標數據。搜狗指數包含在data字段的pvList中,取兩次key-value值即可獲得目標數據,代碼如下:

import json

detail_data=json.loads(web_data.content)

date_datas=detail data['data']['pvList']

if not data_datas:

return

3.4 數妮清洗與整理

前幾步工作獲取的數據格式不規范,接下來對數據進行重新整理,日期改寫成:‘2018-01-01格式,指數數值改寫為int類型。將最終的數據保存到一個列表數據結構中返回給用戶,代碼如下:

result=[]

for date_data in date_datas:

for each_data in date_data:

year=str(each_data['date'])[0:4]

month=str(each_data['date'])[4:6]

day=str(each_data['date'])[6:8]

dates=year+'-'+month+'-'+day

result_each_data=dates,int(each_data['pv'])

result.append(result_each_data)

return result

最后,將獲取的數據存儲于非關系型數據庫MongoDB中。

3.5 數據驗證

查詢電影“我不是藥神”上映前后兩天與上映當天數據,日期為2018.7.3-2018.7.7的具體數據,得到的結果為:

[('2018-07-03',70808),('2018-07-04',132629),('2018-07-05',283926),('2018-07-06',472971),('2018-07-07',587893),],與網站完全相同,表明程序通過測試。

3.6 技術難點

搜狗指數網站在阻止爬蟲工具爬取數據方面十分嚴格,如何繞過防護是工具開發的技術難點。開發者需要全面偽裝爬蟲程序,將解析格式、主機地址等詳細信息寫入請求頭,保證網站獲取的訪問請求是一個正常的用戶訪問,以保證數據的正確性和完整性。

4 結語

本文構建了基于Python的抓取搜狗指數的爬蟲工具,抓取電影“我不是藥神”上映前后兩天與當天網民搜索行為數據。爬取數據與搜狗指數網站公布數據完全相同,表明通過該爬蟲可以高效快捷的得到所有數據,高效的為數據研究提供真實數據。

參考文獻

[1]陳濤,林杰.基于搜索引擎關注度的網絡輿情時空演化比較分析-以谷歌趨勢和百度指數比較為例[J].情報雜志,2013,32(03):7-10,16.

[2]于娟,劉強.主題網絡爬蟲研究綜述[J].計算機工程與科學,2015,37(02):231-237.

[3]陳政伊,袁云靜,賀月錦等.基于Python的微博爬蟲系統研究[J].大眾科技,2017,19(08):8-11.

[4]PINKERTON B.Finding what people want:experiences with the WebCrawler[EB/OL].[2010-10-10].http://www.webir.org/resoruces/phd/pinkerton_2000.pdf.

[5]AHMADI-ABKENARI F,SELAMAT A.An architecture for a focusedtrend parallel Web crawler withthe application of clickstreamanalysis[J].Information Sciences,2012,184(01):266-281.

[6]周立柱,林玲.聚焦爬蟲技術研究綜述[J].計算機應用,2005,25(09):1965-1969.

[7]李斌譯.RICHARD L.用Python寫網絡爬蟲[M].北京:人民郵電出版社,2016.

主站蜘蛛池模板: 日本精品视频一区二区| 男人的天堂久久精品激情| 国产微拍精品| 国产精品免费露脸视频| 国产美女人喷水在线观看| 久久久久亚洲精品成人网| 国产va免费精品观看| 毛片在线看网站| 日本午夜精品一本在线观看| 成年网址网站在线观看| 成人中文在线| 亚洲狼网站狼狼鲁亚洲下载| 久久婷婷人人澡人人爱91| 国产区免费| 亚洲日本www| 综1合AV在线播放| 天堂av综合网| 国产免费好大好硬视频| 婷婷色一二三区波多野衣| 国产免费好大好硬视频| 国产aaaaa一级毛片| 国产精品综合色区在线观看| 免费一看一级毛片| 亚洲无码免费黄色网址| 国产小视频在线高清播放| 在线国产你懂的| 曰AV在线无码| 国产无人区一区二区三区| 天天操天天噜| 澳门av无码| 性做久久久久久久免费看| 无码中文字幕精品推荐| 国产综合在线观看视频| 亚洲久悠悠色悠在线播放| 日韩福利在线观看| 萌白酱国产一区二区| 丁香五月激情图片| 日本91在线| 亚洲综合经典在线一区二区| 色综合中文| 国产精品女在线观看| 国产一级在线播放| 一级毛片在线播放免费| 97se亚洲综合在线天天| 真人高潮娇喘嗯啊在线观看| 国产乱视频网站| 亚洲毛片网站| 亚洲高清在线天堂精品| 国产成人1024精品| 国产人碰人摸人爱免费视频| 欧美精品1区2区| 久久99国产视频| 欧美一级高清片欧美国产欧美| 亚洲男人的天堂在线观看| 一级毛片网| 色综合天天综合| 97综合久久| 夜夜爽免费视频| 亚洲毛片在线看| 视频一区视频二区中文精品| 亚洲精品天堂在线观看| 国产黑丝视频在线观看| 国产激爽爽爽大片在线观看| 欧美成人二区| 九九视频在线免费观看| 国产内射一区亚洲| 国产免费黄| 57pao国产成视频免费播放| 亚洲娇小与黑人巨大交| 欧美在线网| 色婷婷在线影院| 在线观看视频99| 日日摸夜夜爽无码| 欧美va亚洲va香蕉在线| 欧美一级在线播放| 欧美日韩精品在线播放| 国产成人亚洲欧美激情| 亚洲最新地址| 亚洲动漫h| 国产自在自线午夜精品视频| 国产精品蜜芽在线观看| 国产极品美女在线观看|