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

python網絡爬蟲爬取策略對比分析

2020-03-30 03:19:04翟普
電腦知識與技術 2020年1期

翟普

摘要:隨著網絡技術的迅猛發展,網絡已經成為信息的栽體,網絡隨處可見,打開網絡,大量的信息充斥而來。如何有效提取并利用網絡中有價值的信息將會成為未來一個很大的挑戰。網絡爬蟲是一個可以自動提取網頁的程序,Zh.;b-維網上下栽網頁,提取信息。通常爬取的頁面比較多,如何快速有效地爬取頁面是關鍵,該文通過當當網新書暢銷排行榜實例來分析對比現有的四種方式,得出結果異步爬蟲和scrapy框架爬蟲速度最快。

關鍵詞:網絡爬蟲;異步爬蟲;scrapy框架爬蟲

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2020)01-0029-02

1什么是網絡爬蟲

搜索引擎,如baidu、google、yahoo、sougou等是人們通過網絡檢索信息的入口,但是這些搜索引擎存在著一定的局限性,它們大多是基于關鍵詞進行檢索,它們的目標是盡可能大地覆蓋到網絡,檢索出來的數據形式也多樣化,如:圖片、文字、音頻、視頻、數據庫等。但是,通常情況下不同背景的用戶檢索目的和需求有所差異,對搜索引擎返回的大量結果可能并不關心,對于一些信息含量密集并且具有一定結構的數據不能很好地發現和利用。而搜索引擎也會基于服務器資源有限,而網絡資源無限產生資源之間的矛盾。

為了解決這些問題,網絡爬蟲隨之而誕生。網絡爬蟲實質是一個程序,它可以自動地下載網頁,根據特定的需求,提取爬取網頁的某些內容和信息,可以選擇性地從網絡上抓取相關網頁和鏈接,為面向主題的用戶提供數據資源。

一個網絡蜘蛛就是一種機器人,通常,網絡爬蟲首先會爬取一組url,一個url對應一個頁面,然后對每一個頁面里面的url鏈接再進行反復爬取。爬蟲的基本流程為:

第一步:向要爬取的網頁服務器發出請求

通過request庫的get方法向目標站點服務器發出請求,等待目標服務器的響應;

第二步:獲得請求響應的內容

如果目標站點服務器能夠正常響應,就會返回一個Re-sponse對象,該對象包含請求網頁的內容;

第三步:解析網頁內容

第二步得到的頁面內容可能是HTML格式的,使用第三方頁面解析庫或者使用正則表達式進行解析;

第四步:處理網頁內容

處理解析出的網頁內容,提取重要的信息,進行保存或者格式化輸出。

2python與網絡爬蟲的聯系

2008年,自Android將移動操作系統開源以來,一批新的計算機技術和概念迅速涌現,這些技術促使現有的計算機技術升級換代。這些概念包括云計算、移動互聯網、互聯網+、大數據、可穿戴計算等。這些概念讓計算的平臺和應用變得更多樣化,同時不可避免也帶來了更復雜的安全問題。雖然概念很多,但是,在這個階段很難有哪個技術能夠獨領風騷,面對復雜的功能性和緊迫的迭代周期,計算機需要更抽象級別的程序設計語言來表達可編程性,python語言稱為這個階段的主流編程語言。

由于python擁有豐富的網絡抓取模塊,對字符的處理也很靈活,書寫爬蟲很方便,并且擁有強大的爬蟲框架scrapy,所以經常用python來寫爬蟲。今天我們通過研究幾種python爬蟲爬行策略,來分析每種策略的優劣。

3python網絡爬蟲的幾種方法一以當當網新書暢銷排行榜為例

通過施加不同的策略,可以將Python網絡爬蟲的方法大致分為四種:同步爬取方法、并發爬取方法、異步爬取方法、scrapy框架爬取方法。下面通過具體介紹每種方法,來對四種方法進行對比分析。

3.1同步爬取方法

3.1.1方法簡介

該爬蟲方法是用requests+BeautifulSoup的方法。Requests庫是使用python語言編寫的HTTP庫,BeautifulSoup庫是一個靈活又方便的網頁解析庫,處理高效,支持多種解析器。利用它就不用編寫正則表達式也能方便的實現網頁信息的抓取,BeautifulSoup可以解析網頁代碼,根據用戶的需求獲取想要的內容格式化輸出。

3.1.2運行結果

使用一般的同步方法,爬取25頁書籍,總共耗時大約為7.27s

3.2并發爬取方法

3.2.1方法簡介

該方法利用并發模塊concurrent.futures來實現,該模塊使用多線程來加速同步爬取的方法,該模塊支持線程池和進程池,可以根據實際情況設置線程個數,本文設置線程的個數為16個,因為線程設置越多,切換的開銷也會比較大。

關鍵代碼如下:

##利用并發模塊concurrent,futures爬取網頁

executor=ThreadPoolExecutor(max_workers=61)

##函數submit():parser為函數的名字,uds為傳入的參數,可以有多個參數

book_tasks=[executor.submit(parser,urls)for url in urls]

##表示等前面所有的線程全部執行完畢才會進行后面程序的執行

wait(book_tasks,return_when=ALL_COMPLETED)

3.2.2運行結果

使用并發方式,耗時大約為7.79s,說明使用多線程,并不一定會加快爬蟲的速度。

3.3異步爬取方法

3.3.1方法簡介

使用第三方庫aiohttp可以進行異步處理http的請求,使用第三方庫asyncio可以進行時間異步10,異步10方法可以很好地提升網絡爬蟲的速度。這種爬取方法與同步方法的思路和處理方法基本一致,只是在處理HTTP請求時使用了aiohttp模塊以及在解析網頁時函數變成了協程(coroutine),再利用aysncio進行并發處理,這樣無疑能夠提升爬蟲的效率。

3.3.2運行結果

3.4scrapy框架爬取方法

Scrapy是用純Python實現一個為了爬取網站數據、提取結構性數據而編寫的應用框架,只需要定制開發幾個模塊就可以輕松的實現一個爬蟲。具體步驟如下:

主站蜘蛛池模板: 97国产成人无码精品久久久| 欧美综合成人| 国产精品美乳| 乱系列中文字幕在线视频| 亚洲色无码专线精品观看| 少妇被粗大的猛烈进出免费视频| 日韩欧美中文| 69av在线| 免费毛片全部不收费的| 996免费视频国产在线播放| 欧美亚洲国产一区| 欧美福利在线观看| 国产黄网站在线观看| 幺女国产一级毛片| 久久亚洲国产一区二区| 精品久久高清| 国产乱人伦偷精品视频AAA| 成人毛片免费在线观看| 免费毛片视频| 一级毛片网| 国产精品观看视频免费完整版| 国产精品综合久久久| 丁香综合在线| 91成人在线观看| 亚洲综合狠狠| 91亚洲影院| 麻豆精品在线视频| 夜夜拍夜夜爽| 九色在线观看视频| 嫩草在线视频| 久久特级毛片| a亚洲天堂| 国产美女免费网站| 国产精品久久久久婷婷五月| 2021无码专区人妻系列日韩| 永久免费av网站可以直接看的 | 久久综合九色综合97网| 无码aaa视频| 欧美国产在线看| 天天色综网| 99久久精品免费看国产免费软件 | 亚洲一区黄色| 白浆免费视频国产精品视频| 毛片在线播放网址| 国产视频a| 综合五月天网| 在线日韩日本国产亚洲| 欧美笫一页| 久久婷婷六月| 亚洲综合一区国产精品| 欧美日韩午夜| 一级成人a做片免费| 激情综合婷婷丁香五月尤物 | 最新亚洲人成网站在线观看| 毛片免费观看视频| 欧美性猛交一区二区三区| 亚洲精品第一在线观看视频| 天天操天天噜| 波多野结衣一区二区三区AV| 天天综合色天天综合网| 欧洲一区二区三区无码| 久草视频精品| 凹凸国产分类在线观看| 婷婷色丁香综合激情| 久久精品一卡日本电影| 亚洲综合色吧| 手机在线看片不卡中文字幕| 午夜在线不卡| 久热中文字幕在线观看| 99久久无色码中文字幕| 婷婷综合缴情亚洲五月伊| 久久国产拍爱| 欧美曰批视频免费播放免费| 国产另类乱子伦精品免费女| 五月六月伊人狠狠丁香网| 在线国产三级| 国产不卡一级毛片视频| 3D动漫精品啪啪一区二区下载| 久久亚洲日本不卡一区二区| 精品91自产拍在线| 国产超碰一区二区三区| 亚洲香蕉在线|