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

主站蜘蛛池模板: 日韩福利在线视频| 高清无码不卡视频| 亚洲AV无码乱码在线观看代蜜桃 | 欧美精品成人| 亚洲欧美在线看片AI| 亚洲国产日韩一区| 国产杨幂丝袜av在线播放| 欧美亚洲国产精品久久蜜芽| 亚洲天堂视频在线观看免费| 少妇人妻无码首页| 国产尤物jk自慰制服喷水| 亚洲91精品视频| 欧美特级AAAAAA视频免费观看| 国产午夜福利亚洲第一| 91网红精品在线观看| 国产精品人莉莉成在线播放| 国产黑丝视频在线观看| 久久人搡人人玩人妻精品| www.91在线播放| 天天躁夜夜躁狠狠躁躁88| 热九九精品| 蜜臀AVWWW国产天堂| 欧美性精品| 67194成是人免费无码| 好久久免费视频高清| 国内精品伊人久久久久7777人| 狠狠五月天中文字幕| 欧美日韩专区| 亚洲欧美极品| 久久综合AV免费观看| 国产精品第5页| 91精品日韩人妻无码久久| 91精品专区国产盗摄| 亚洲经典在线中文字幕| 国产精品原创不卡在线| 欧美亚洲一区二区三区在线| 久草网视频在线| 老汉色老汉首页a亚洲| 无码啪啪精品天堂浪潮av| 91福利在线看| 亚洲精品片911| 亚洲欧美激情小说另类| 试看120秒男女啪啪免费| 久久久成年黄色视频| 免费国产高清视频| 久久婷婷色综合老司机| 凹凸精品免费精品视频| 国产精品无码制服丝袜| 午夜性爽视频男人的天堂| 中文字幕资源站| 91娇喘视频| 日韩精品亚洲人旧成在线| 亚洲日韩欧美在线观看| 午夜老司机永久免费看片| 日韩第一页在线| 高清色本在线www| 亚洲黄色视频在线观看一区| 国产欧美日韩一区二区视频在线| 午夜综合网| 色婷婷电影网| 日本在线免费网站| 亚洲第一区欧美国产综合| 99热最新网址| 国产乱子精品一区二区在线观看| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲成aⅴ人片在线影院八| 国产高清无码麻豆精品| a亚洲天堂| 这里只有精品在线播放| 伊人国产无码高清视频| 亚洲日本韩在线观看| 四虎成人精品在永久免费| 日韩毛片免费观看| 国产精品一线天| 国产精品免费露脸视频| 亚洲国产精品美女| 玖玖精品视频在线观看| 高清无码手机在线观看| 欧美特黄一级大黄录像| 国产精品无码AV片在线观看播放| 欧美日韩中文字幕二区三区| 中文字幕亚洲综久久2021|