国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的爬蟲技術(shù)的網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)

2020-01-03 10:09:02肖新鳳張絳麗鄧祖民
現(xiàn)代信息科技 2020年14期
關(guān)鍵詞:爬蟲數(shù)據(jù)

肖新鳳 張絳麗 鄧祖民

摘? 要:隨著爬蟲技術(shù)的不斷完善,其功能越來越強(qiáng)大,也導(dǎo)致數(shù)據(jù)竊取問題越來越嚴(yán)重。很多網(wǎng)站都采用了反爬蟲技術(shù),因此為了正常獲取數(shù)據(jù),需要一些反爬蟲策略。文章設(shè)計(jì)和實(shí)現(xiàn)面向定向網(wǎng)站的網(wǎng)絡(luò)爬蟲程序,使其能滿足不同的性能要求,并闡述了定向網(wǎng)站爬蟲的細(xì)節(jié)和應(yīng)用環(huán)節(jié)。爬蟲可以針對不同的主題網(wǎng)站分析構(gòu)造URL并去重,多線程技術(shù)讓爬蟲具備更強(qiáng)大的抓取能力。

關(guān)鍵詞:Python;爬蟲;數(shù)據(jù);豆瓣讀書網(wǎng)

Abstract:With the continuous improvement of crawler technology,more and more powerful functions,and more and more serious data theft problems,many websites have adopted anti-crawler technology,so in order to obtain data normally,some anti-crawler technology is needed. This paper designs and implements a web crawler program oriented to the directional website,and meets different performance requirements,including the details and applications of the directional website crawler Link. For different theme websites,analyze and construct URL to remove duplication. The multi-threading technology which makes the crawler have more powerful grasping ability.

Keywords:Python;crawler;data;Douban reading website

0? 引? 言

網(wǎng)絡(luò)爬蟲一般用于搜索引擎,其中很大的推動力是來自各種個人、中小型爬蟲。一些低質(zhì)量的爬蟲主要表現(xiàn)為不遵守Robots協(xié)議、爬行策略未優(yōu)化、分布式的架構(gòu)。隨著大數(shù)據(jù)應(yīng)用越來越廣泛,很多人想研究大數(shù)據(jù)但需要充足的數(shù)據(jù),因此“互聯(lián)網(wǎng)+”也變得更有價(jià)值。所以,隨著大數(shù)據(jù)應(yīng)用的發(fā)展,爬蟲的使用是不可避免的,并且使用范圍會越來越廣泛。近年來,許多創(chuàng)業(yè)公司因其發(fā)展需要大量的數(shù)據(jù)。筆者以某個服務(wù)類的公司為例,該公司需要電子商城(如:eBay)的賣家聯(lián)系方式,這時(shí)就需要利用爬蟲技術(shù)。目前爬蟲技術(shù)效率較高的就是基于Python的爬蟲技術(shù),它不僅爬取速度快,而且Python語言的簡潔性大大地提高了完成爬取程序的時(shí)間,使其可以隨著不同的主題網(wǎng)站分析構(gòu)造URL并去重。并且網(wǎng)絡(luò)爬蟲采用多線程技術(shù),將具備更強(qiáng)大的抓取能力。

1? 爬蟲的基本流程及相關(guān)技術(shù)

爬蟲在互聯(lián)網(wǎng)網(wǎng)站上按一定規(guī)則去獲取所需要的信息?;ヂ?lián)網(wǎng)可以比作一張網(wǎng),每個Web節(jié)點(diǎn)都是存儲數(shù)據(jù)的地方。爬蟲程序是向網(wǎng)站發(fā)送請求、獲取資源、分析和提取有用數(shù)據(jù)的程序。爬蟲爬取數(shù)據(jù)的基本流程如圖1所示。

Python程序類似于蜘蛛,在每個節(jié)點(diǎn)上捕捉獵物。通用爬蟲暨通用的網(wǎng)絡(luò)爬蟲也可以稱為可伸縮的網(wǎng)絡(luò)爬蟲,有兩種常見的爬取策略:深度優(yōu)先策略及廣度優(yōu)先策略。而聚焦爬蟲也被稱為主題網(wǎng)絡(luò)爬蟲,主要為特定的人群提供服務(wù),可以節(jié)省大量的服務(wù)器資源和帶寬資源;增量爬蟲則是指以增量方式更新已下載網(wǎng)頁并僅對新生成或更改的網(wǎng)頁進(jìn)行爬取的爬蟲程序,可以在一定程度上保證被爬取的頁面是盡可能新的。與周期性的抓取和刷新相比,增量爬蟲只在需要時(shí)對新生成或更改的頁面進(jìn)行抓取,不再下載未更改的頁面,可以有效減少數(shù)據(jù)下載量,及時(shí)更新抓取的頁面,減少時(shí)間和空間消耗,但也增加了爬行算法的復(fù)雜度和實(shí)現(xiàn)難度。增量爬蟲的體系結(jié)構(gòu)包括爬行模塊、排序模塊、更新模塊、本地頁面集、要爬行的URL集和本地頁面URL集。本文采用的增量網(wǎng)頁爬蟲進(jìn)行發(fā)送請求、獲取響應(yīng)內(nèi)容、解析內(nèi)容及保存數(shù)據(jù)。

2? 項(xiàng)目分析、設(shè)計(jì)、測試與實(shí)現(xiàn)

2.1? 項(xiàng)目分析

2.1.1? 項(xiàng)目描述

項(xiàng)目為編寫一個網(wǎng)站爬蟲程序,將豆瓣讀書網(wǎng)站上的所有圖書信息爬取下來,并保存到MySQL數(shù)據(jù)庫中。爬取的信息字段要求有:ID號、書名、作者、出版社、原作名、譯者、出版年、頁數(shù)、定價(jià)、裝幀、叢書、ISBN、評分、評論人數(shù),部分信息如圖2所示。

2.1.2? 爬取網(wǎng)站過程分析

打開豆瓣讀書首頁https://book.douban.com/,如圖3所示;在豆瓣讀書首頁的右側(cè)點(diǎn)擊所有熱門標(biāo)簽,會跳到豆瓣圖書標(biāo)簽頁https://book.douban.com/tag/?view=type&icn= index-sorttags-all。如圖4所示,點(diǎn)擊豆瓣圖書標(biāo)簽頁分類中的標(biāo)簽,會展示對應(yīng)圖書列表頁,在圖書列表頁中可以獲取每本圖書的詳細(xì)信息,如圖5所示。

2.2? 項(xiàng)目設(shè)計(jì)

項(xiàng)目主要分為四大模塊。模塊一實(shí)現(xiàn)對豆瓣圖書信息以及所有標(biāo)簽信息的爬取,并將圖書的標(biāo)簽信息寫入到Redis數(shù)據(jù)庫中,此模塊可使用Requests簡單實(shí)現(xiàn)。模塊二負(fù)責(zé)從Redis中獲取每個圖書標(biāo)簽,分頁式地爬取每本圖書的URL信息后,將信息寫入到Redis中。模塊三負(fù)責(zé)從Redis中獲取每個圖書的URL地址,并爬取對應(yīng)的圖書詳情,將每本圖書詳情信息寫回到Redis數(shù)據(jù)庫中。模塊四負(fù)責(zé)從Redis中獲取每本圖書的詳情信息,并將信息依次寫入到MySQL數(shù)據(jù)中,作為最終的爬取信息。該項(xiàng)目結(jié)構(gòu)圖如圖6所示。

2.3? 項(xiàng)目部分實(shí)現(xiàn)

2.3.1? 定義model類

2.3.3? 編寫視圖文件部分代碼

2.4? 項(xiàng)目測試

啟動服務(wù)測試,$ python manage.py runserver使用瀏覽器訪問測試,抓取部分信息的效果圖如圖7所示。本系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)面向定向網(wǎng)站的網(wǎng)絡(luò)爬蟲程序,經(jīng)過測試,能滿足不同的性能要求,且抓取效果良好。

3? 結(jié)? 論

文章對互聯(lián)網(wǎng)網(wǎng)站的信息進(jìn)行爬取并展示,并對一些網(wǎng)站的反爬技術(shù)使用對應(yīng)的反反爬策略,不僅不增加網(wǎng)站服務(wù)器的壓力,還提高了爬取的效率和穩(wěn)定性;并且遵守了網(wǎng)站的Robots協(xié)議。在大數(shù)據(jù)時(shí)代,爬蟲行業(yè)必將風(fēng)生水起,Python網(wǎng)絡(luò)爬蟲更是獨(dú)領(lǐng)風(fēng)騷?;赑ython的Web爬蟲數(shù)據(jù)抽取是一種主流技術(shù),Python語言具有跨平臺、開發(fā)速度快、語言簡單等特點(diǎn)。Python語言可以通過第三方請求庫獲取返回值的內(nèi)容,然后通過正則、XPath和Beautiful Soup三種Python過濾技術(shù)快速匹配和提取網(wǎng)頁中的圖像和文本數(shù)據(jù),這樣不僅能精確地找到網(wǎng)頁中需要的數(shù)據(jù),還能自動化快速地將這些數(shù)據(jù)保存下來,極大地減少了查找數(shù)據(jù)的時(shí)間。基于Python的網(wǎng)絡(luò)爬蟲不僅爬取速度快,其語言的簡潔性也大大地縮短了完成爬取的時(shí)間。

參考文獻(xiàn):

[1] 李琳.基于Python的網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].信息通信,2017(9):26-27.

[2] 張譽(yù)曜,陳媛媛.基于Python下的爬蟲綜述及應(yīng)用 [J].中國新通信,2019,21(6):98.

[3] 王碧瑤.基于Python的網(wǎng)絡(luò)爬蟲技術(shù)研究 [J].數(shù)字技術(shù)與應(yīng)用,2017(5):76.

[4] 陸樹芬.基于Python對網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].電腦編程技巧與維護(hù),2019(2):26-27+51.

[5] 唐琳,董依萌,何天宇.基于Python的網(wǎng)絡(luò)爬蟲技術(shù)的關(guān)鍵性問題探索 [J].電子世界,2018(14):32-33.

作者簡介:肖新鳳(1978—),女,漢族,湖南邵陽人,講師,研究生,研究方向:軟件技術(shù)、大數(shù)據(jù)、數(shù)據(jù)挖掘。

猜你喜歡
爬蟲數(shù)據(jù)
利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
電子測試(2018年1期)2018-04-18 11:53:04
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
電子制作(2017年9期)2017-04-17 03:00:46
焊接工藝仿真訓(xùn)練系統(tǒng)中焊點(diǎn)數(shù)據(jù)的建立方法
一種借助數(shù)據(jù)處理構(gòu)建的智能食堂管理系統(tǒng)
數(shù)據(jù)化藝術(shù)的生成探究
淺談計(jì)量自動化系統(tǒng)實(shí)現(xiàn)預(yù)購電管理應(yīng)用
晋州市| 都昌县| 镇平县| 新邵县| 宣城市| 鲜城| 榆中县| 保山市| 黑龙江省| 垣曲县| 大足县| 玛曲县| 霸州市| 左云县| 宜宾县| 中超| 准格尔旗| 梧州市| 乐亭县| 长宁区| 扎赉特旗| 娱乐| 华蓥市| 始兴县| 菏泽市| 老河口市| 集贤县| 五家渠市| 徐闻县| 兴化市| 乌兰县| 淮南市| 共和县| 太谷县| 新乡市| 旬邑县| 阳曲县| 淮南市| 宁都县| 罗源县| 永吉县|