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

基于python的關鍵詞挖掘算法分析與實現

2021-11-22 15:13:32陳恒星
科技信息·學術版 2021年17期
關鍵詞:搜索引擎百度深度

陳恒星

摘要:關鍵詞挖掘是網站搜索引擎優化中的一項重要工作。文章介紹了Python爬蟲的工作原理,分析了進行百度關鍵詞挖掘的基本思路,設計了合理的關鍵詞挖掘算法,并基于python編程技術實現了相應的功能,從而使關鍵詞挖掘這樣一項繁瑣的工作變得快捷而高效。

關鍵詞:Python;關鍵詞挖掘;算法分析與實現;

1 引言

在網站的搜索引擎優化工作中關鍵詞的設計往往是最重要的一個環節之一。通過對搜索引擎工具的分析,我們可以看到相關搜索詞和下拉框往往是用戶搜索的主要入口,因此在這些地方出現的關鍵詞最能反應以往用戶的搜索意圖,但在以往獲取這些關鍵詞的途徑上是比較麻煩和費力的。而python作為一種高效的爬蟲工具在解決數據抓取和分析上是最合適的選擇。本文主要以百度搜索引擎為例,以關鍵詞挖掘作為主要工作目標,以python爬蟲作為技術手段,設計和實現了百度相關關鍵詞挖掘的算法。

2 Python爬蟲的工作原理

一般來說,網絡爬蟲是根據事先設置的若干初始網頁的URL地址開始,然后按照一定的策略爬取網頁,獲取初始網頁上的URL地址列表,然后每當抓取一個網頁時,爬蟲會提取該網頁新的URL地址并放入到未爬取的隊列中去,然后循環的從未爬取的隊列中取出一個URL地址再次進行新一輪的爬取,不斷的重復上述過程,直到隊列中的URL地址爬取完畢或者達到其他的限制條件,爬蟲才會結束。Python爬蟲則是采用Python編程語言實現的一種從網上抓取各類數據信息的自動化程序。

Python通過引用不同的庫文件實現網絡爬蟲功能,主要可以分為4個步驟,如下圖所示:

1、發起請求

在發起請求階段,python主要通過引用requests庫來實現??梢詷嬙煲粋€包含請求URL地址、偽裝請求頭headers、請求方式method、最長時間timeout的Request,然后向目標網址發送一個Request請求。

2、獲取響應內容

在獲取響應階段,如果服務器能正常響應,會返回一個Response對象,Response 的內容可能有 HTML,Json 字符串,二進制數據 (圖片,視頻等) 等類型。這個過程就是服務器接收客戶端的Request請求,經過解析發送給瀏覽器的網頁 HTML 文件。

3、解析內容

在解析返回內容的階段,主要通過第三方解析庫如Beautifulsoup,Xpath、pyquery等實現返回內容的解析。如果內容是HTML,可以用正則表達式(RE模塊)處理,也可以用網頁解析庫進行解析;如果是 Json,可以直接轉為 Json 對象解析;如果是二進制數據,可以以wb的方式寫入文件進一步處理。

4、保存數據

在數據保存階段,一般的保存的方式可以是文本或CVS格式的文檔,還可以是保存到數據庫(MySQL,Redis 、Mongdb),或者保存為指定格式的 jpeg,mp4 等文件。

3 關鍵詞挖掘算法分析

3.1關鍵詞挖掘的需求分析

在百度搜索引擎優化的過程中,關鍵詞的選擇是一項很重要的工作。從搜索引擎優化的角度來說,因此挖掘的關鍵詞遵循4個基本原則:

(1)與網站優化密切相關的關鍵詞,因為這些詞才能直接反應網站的推廣目標,我們通常選擇網站主題相關的主詞;

(2)有商業價值的詞,在關鍵詞與網站相關的前提下,要盡量選擇具有營銷導向的詞,這些詞最能反應用戶對網站的需求導向,搜索該詞的用戶是最容易有轉化行為的潛在客戶;

(3)搜索指數高的詞,理論上來說,搜索指數越高的詞越能反應互聯網用戶對該詞的搜索需求,也是網站搜索引擎流量的主要來源;

(4)低競爭度的詞,在流量競爭激烈的情況下,選擇一些低競爭度的詞能讓網站搜索引擎優化更容易有排名,有流量。

基于以上四點要求去選擇關鍵詞才能讓網站搜索引擎優化更符合用戶的搜索需求。而搜索引擎平臺提供的“相關搜索”功能在一定程度上就反應了以往用戶的搜索需求。從而對”相關搜索”關鍵詞的挖掘就成了百度關鍵詞挖掘重要途徑。

3.2 相關關鍵詞抓取策略分析

在百度相關關鍵詞挖掘中,抓取詞的先后順序不同,會直接影響到相關詞的相關度,采用不同的抓取策略也會影響到關鍵詞挖掘的規模。本文的相關關鍵詞的抓取主要考慮以下兩種抓取策略:

1.深度優先遍歷策略:網絡爬蟲從主詞開始,然后找到若干個百度相關詞,一個詞接一個詞跟蹤下去,處理完這條線路的所有相關詞之后再轉入下一個詞處理。以下圖為例:

遍歷路徑:黑茶網- 茶網-百分茶官網 ?黑茶價格 ?黑茶產區-黑茶產地在哪-麻黑茶產地在哪里 安化黑茶 黑茶網平臺

2.廣度優先遍歷策略:網絡爬蟲從主詞開始,然后找到若干個百度相關詞 ,先處理該層的所有詞后,然后選擇其中的一個詞進入下一層的抓取,以此類推,直到都沒有相關詞就結束。還是以上面的圖為例:

遍歷路徑:黑茶網-黑茶價格-黑茶產區-安化黑茶-黑茶網平臺-茶網 ?黑茶產地在哪 麻黑茶產地在哪里 百分茶官網絡

由于百度相關詞的無窮性和不確定性,所以兩種抓取策略都應該控制挖掘的深度,同時由于抓取的深度越深抓取到的詞與主詞的相關性會越來差。因此本文最好采用廣度優先遍歷策略。

3.3相關關鍵詞挖掘功能分析

針對百度的“相關搜索”進行關鍵詞挖掘,以“湖南黑茶網”為例,爬蟲程序以設定的主詞,按一定的爬取策略實現百度相關關鍵詞挖掘的功能如下:

(1)根據關鍵詞的挖掘需求設定爬蟲程序挖掘主詞的功能。可以根據主詞拓展百度相關搜索詞,如確定“湖南黑茶網”的網站主詞為”黑茶”、”黑茶網”,”黑茶價格”。

(2)根據關鍵詞挖掘的規模和相關度要求,可以設定關鍵詞抓取深度的功能。一般來說,一個關鍵詞正常情況下爬蟲程序能夠獲取到10個相關搜索詞,但是如果只獲取一層深度的關鍵詞的話,則爬蟲能夠抓取的關鍵詞數量非常有限,因此爬蟲程序中需要能設定爬蟲循環抓取的深度。但事實上,爬蟲抓取的深度越深,有可能重復抓取到一些相同的詞,這樣爬蟲的效率就不高,同時隨著爬取深度加深,相關性就會越低,這樣抓取的關鍵詞與網站推廣的目標就會越來越遠。

(3)根據抓取原則對拓展詞進行分情況處理的功能。根據關鍵詞的挖掘的需求分析,一般可以把爬蟲抓取到的拓展到詞分為四種情況,一種是具有商業價值的詞,諸如關鍵詞中包含”價格”、“錢”、“買”,那么對這些詞做高價值的屬性標注;一種是爬蟲頻繁抓取到的詞,說明這些詞被搜索的次數多,更能反應用戶的搜索需要,同樣可以做這些詞的高搜索的屬性標注;一種是低競爭度的詞,可以通過該詞的競爭頁面數來衡量其競爭激烈程度。具體來說就是記錄“百度為您找到相關結果”的結果。這樣的結果數越小說明競爭度越低。一種是沒有相關詞的情況,則只要保留該詞,以避免下次拓展重復操作。

(4)對拓展詞排序整理的功能。爬蟲抓取到相關詞后保存到文本文件中,并標注詞的高價值詞、高搜索詞、低競爭詞等屬性,然后根據需要進行某些維度的排序。

4 基于python的關鍵詞挖掘算法實現

本文通過定義不同函數來實現關鍵詞挖掘。使用定義全局的字典和元組共享的方式來進行關鍵詞的過濾和臨時結果存儲,以消息隊列動態管理準備進行抓取的關鍵詞。使用雙元素元組來作為作為消息隊列的參數,其中一個為關鍵詞,另一個為當前的拓展是第幾次。主要代碼如下:

#程序入口

if __name__ == '__main__':

result = {} # 保存挖掘詞結果

seen = set()# 保存在隊列中的關鍵詞

k_queue = Queue()

loop =10 #挖掘詞的深度

ua = ' 偽裝headers '

with open('keys.txt') as kwfile:

for key in kwfile:

key = key.strip()

k_queue.put((key,1))

seen.add(key)

failed = open('fail.txt','w')

while True:

kw,cloop = kw_queue.get()

print('CurLoop:{} Checking:{}'.format(cloop,kw))

query = 'https://www.baidu.com/s?word={}'.format(kw)

try:

res = requests.get (query,timeout=10,user_agent=ua)

if res:

xgjgs,kw_list,jzsx = extract(res,kw)

filter(cloop,kw_list,xgjgs)

else:

failed.write('{}\n'.format(kw))

finally:

kw_queue.task_done()

sort_list = sorted(result.items(),key=lambda x:x[1],reverse=True)

save = open('bdkey.txt','w',encoding='utf-8')

for item in sort_list:

# 關鍵詞+次數+相關結果數+價值屬性的文件輸出方式

line = '%s\t%d\%s\t%s\tn' % (item[0],item[1],item[2],item[3])

save.write(line)

save.flush()

save.close()

#提取相關關鍵詞及其相關結果數、詞屬性

def extract(html,kw):

soup=BeautifulSoup(html,'lxml')

xgjgs=soup.select('span.nums_text')[0].text.strip()

xgList=re.findall(r'class="c-font-medium new-inc-rs-item”>(.*?)</a>',html,re.S|re.I)

jzsx=isJzsx(kw)

return xgjgs,xgList,jzsx

# 判斷詞的價值屬性

def isJzsx(kw)

if '錢' in kw:

jzsx='F'

elif '價格' in kw:

jzsx='T'

else:

jzsx='F'

#關鍵詞過濾和統計函數

def filter(current_loop,kwlist,xgjgs,jzsx):

for kw in kwlist:

if current_loop < loop and kw not in seen:

kw_queue.put((kw,current_loop+1))

seen.add(kw)

if kw in self.result:

result[kw]+= 1

else:

result[kw]= 1

result['xgjgs']=xgjgs

result['jzsx']=jzsx

5 結束語

總而言之,python編程語言在實現網絡爬蟲應用中有其他獨特的優勢。而本文正是充分利用python語言來解決搜索引擎優化關鍵詞挖掘這一復雜多樣的工作問題,把反復、無趣的工作變成了一種只要基于某些策略,自動化高效完成的爬蟲算法程序,切實的解決了搜索引擎優化選詞難,盲目選詞的問題。但是爬蟲算法程序本身也要需要完善的地方,諸如怎樣更科學合理的判別關鍵詞的高價值性,爬蟲程序挖掘深度與關鍵詞相關性平衡等問題都有待進一步的研究和探索。

參考文獻

[1]曾曉娟;基于Python爬蟲技術的應用[J];辦公自動化;2018年20期

[2]闖躍龍;郭文平;面向非計算機專業學生的Python教學內容設計[J];臺州學院學報;2018年03期

[3]姚建盛;李淑梅;Python在科學計算中的應用[J];數字技術與應用;2016年11期

[4]錢程;陽小蘭;朱福喜;基于Python的網絡爬蟲技術[J];黑龍江科技信息;2016年36期

[5]李彥;基于Python的網絡爬蟲技術的研究[J];探索與觀察;2021年18期

猜你喜歡
搜索引擎百度深度
深度理解一元一次方程
Robust adaptive UKF based on SVR for inertial based integrated navigation
深度觀察
深度觀察
深度觀察
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
百度遭投行下調評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
網絡搜索引擎亟待規范
中國衛生(2015年12期)2015-11-10 05:13:38
基于Nutch的醫療搜索引擎的研究與開發
百度“放衛星”,有沒有可能?
太空探索(2014年4期)2014-07-19 10:08:58
主站蜘蛛池模板: 夜夜爽免费视频| 免费xxxxx在线观看网站| 999国内精品久久免费视频| 五月综合色婷婷| 最新国产你懂的在线网址| 欧美啪啪一区| 麻豆精品国产自产在线| 亚洲aaa视频| 福利视频99| 亚洲欧美另类日本| 99热在线只有精品| 久久精品国产精品国产一区| 国产成人精品一区二区| 中文字幕人妻av一区二区| 国产精品美女免费视频大全| 国产精品尤物在线| 国产亚洲精品自在久久不卡| 国产一级α片| 亚洲成人网在线播放| 激情视频综合网| 国产午夜精品一区二区三| 欧美激情福利| 亚洲成A人V欧美综合天堂| 国产浮力第一页永久地址| 国产女人爽到高潮的免费视频| 日韩精品无码一级毛片免费| 一边摸一边做爽的视频17国产| 亚洲午夜天堂| 无码国产伊人| 欧美v在线| 午夜一级做a爰片久久毛片| 婷婷激情五月网| 国产青榴视频| 中文字幕精品一区二区三区视频| 另类欧美日韩| 日韩毛片免费观看| 国产91视频免费| 国内老司机精品视频在线播出| 久久国产精品电影| 欧美亚洲国产一区| 99热免费在线| 人妖无码第一页| 欧美高清国产| 久久精品66| 素人激情视频福利| 亚洲成人网在线播放| 欧美午夜在线视频| 国语少妇高潮| 亚洲国产欧美目韩成人综合| 国产日韩欧美黄色片免费观看| 亚洲视频无码| 亚洲国产清纯| 亚洲欧美另类色图| 国产国产人在线成免费视频狼人色| 精品视频第一页| 日韩高清欧美| 91极品美女高潮叫床在线观看| 中文字幕伦视频| 秋霞一区二区三区| 在线无码九区| 国产人人射| 国产丰满成熟女性性满足视频| 99青青青精品视频在线| 国产主播在线一区| 91精品国产91久无码网站| 欧洲日本亚洲中文字幕| 成人福利在线视频| 国产区免费| 亚洲一级毛片在线播放| 高清不卡一区二区三区香蕉| 久久黄色免费电影| 尤物成AV人片在线观看| 五月婷婷伊人网| 日韩毛片在线视频| 日韩精品成人在线| 91精品国产91久久久久久三级| 中文字幕在线不卡视频| 91久草视频| 亚洲一区第一页| 国产精品一区二区不卡的视频| 日韩二区三区无| 久久美女精品国产精品亚洲|