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

?

基于Python的豆瓣電影網(wǎng)絡(luò)爬蟲設(shè)計(jì)

2020-10-20 11:41:23周萍李歌
西部論叢 2020年7期
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲

周萍 李歌

摘 要:該文通過(guò)剖析豆瓣電影網(wǎng)頁(yè)源代碼,借助Python性能完備的標(biāo)準(zhǔn)庫(kù)、強(qiáng)大的第三方庫(kù)requests、BeautifulSoup 及selenium等,編寫程序快速實(shí)現(xiàn)豆瓣電影用戶模擬登錄、指定數(shù)據(jù)的抓取和保存。該文研究為培養(yǎng)數(shù)據(jù)挖掘和分析能力奠定了基礎(chǔ)。

關(guān)鍵詞:數(shù)據(jù)爬取;Python;網(wǎng)絡(luò)爬蟲

1前言

現(xiàn)在已經(jīng)是大數(shù)據(jù)和人工智能的時(shí)代,信息數(shù)據(jù)的價(jià)值顯得越來(lái)越重要,而為了從海量蕪雜的信息數(shù)據(jù)中獲得需要的信息,需要對(duì)數(shù)據(jù)進(jìn)行挖掘與分析。在進(jìn)行大數(shù)據(jù)分析或數(shù)據(jù)挖掘時(shí),我們能夠去一些比較大型的官方站點(diǎn)下載數(shù)據(jù)源。然而這些取得數(shù)據(jù)的模式,有時(shí)很難精確滿足對(duì)數(shù)據(jù)的需求,而通過(guò)自行手動(dòng)從互聯(lián)網(wǎng)中去查找這些數(shù)據(jù),消耗的精力和時(shí)間又太多。這時(shí)就能夠使用爬蟲技術(shù),自動(dòng)地從互聯(lián)網(wǎng)中查找滿足特定需要的數(shù)據(jù)內(nèi)容,并將這些信息內(nèi)容爬取回來(lái)作為我們的數(shù)據(jù)源,以便下步進(jìn)行數(shù)據(jù)分析和挖掘。由此可見在隨著對(duì)大數(shù)據(jù)獲取需求的增大,網(wǎng)絡(luò)爬蟲的地位會(huì)越來(lái)越凸顯。文章通過(guò)利用Python自帶的標(biāo)準(zhǔn)庫(kù),對(duì)網(wǎng)絡(luò)爬蟲原理進(jìn)行了研究并實(shí)現(xiàn)了豆瓣電影網(wǎng)站上數(shù)據(jù)的提取,為接下來(lái)進(jìn)行數(shù)據(jù)可視化顯示和數(shù)據(jù)分析積累了數(shù)據(jù)源。Python語(yǔ)法結(jié)構(gòu)簡(jiǎn)單易學(xué),自帶有豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)供程序員使用,可擴(kuò)展使用于多種平臺(tái)。Python爬蟲工具包使用方便,數(shù)據(jù)抓取功能強(qiáng)大。

2 相關(guān)技術(shù)

2.1 python

Python是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。它語(yǔ)法簡(jiǎn)單明確,易于讀寫,上手容易,從而獲得大量程序員的喜愛(ài),被譽(yù)為“宇宙最好的編程語(yǔ)言”。 Python帶有種類繁多的庫(kù),基本上通過(guò)計(jì)算機(jī)實(shí)現(xiàn)的任何功能,Python官方庫(kù)里都有相應(yīng)的模塊進(jìn)行支持,在基礎(chǔ)庫(kù)的基礎(chǔ)上再進(jìn)行開發(fā),可大大提高開發(fā)效率。Python具備可移植性,由于它的開源本質(zhì),可被移植在不同平臺(tái)上使用。Python語(yǔ)言目前廣泛應(yīng)用于系統(tǒng)運(yùn)維、web開發(fā)、云計(jì)算、網(wǎng)絡(luò)爬蟲、計(jì)算與數(shù)據(jù)分析、人工智能等領(lǐng)域,已然成為了一種主流編程語(yǔ)言。

2.2網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲也叫做網(wǎng)絡(luò)機(jī)器人,可以代替人工操作自動(dòng)地在互聯(lián)網(wǎng)中進(jìn)行數(shù)據(jù)信息的采集與整理。目前最高效的Python爬蟲框架有8個(gè):Scrapy、PySpider、Crawley、Portia、Newspaper、Beautiful Soup、Grab和Cola。本文中使用的Beautiful Soup是一個(gè)高效的網(wǎng)頁(yè)解析庫(kù),最主要的功能是可以從 HTML 或 XML 文件中提取數(shù)據(jù)。它是一個(gè)工具箱,通過(guò)解析文檔的方式實(shí)現(xiàn)常用的文檔導(dǎo)航、查詢和修改。Beautiful Soup庫(kù)使用簡(jiǎn)便,工作效率高。

3、程序設(shè)計(jì)

本次爬蟲目標(biāo)主要有3個(gè),一是程序?qū)崿F(xiàn)模擬登陸豆瓣;二是自定義搜索關(guān)鍵字(電影名或演員);三是爬取電影名稱和詳情頁(yè)面內(nèi)容,并另存為文件。根據(jù)分析網(wǎng)頁(yè)源碼從相應(yīng)標(biāo)簽中獲得每部電影的 URL地址,根據(jù)得到的URL地址進(jìn)入二級(jí)頁(yè)面,即電影詳情頁(yè)面。整個(gè)爬蟲的流程是,模擬登陸→關(guān)鍵字搜索→通過(guò)循環(huán)模擬翻頁(yè)→抓取需要的信息→獲取下一頁(yè)的url→寫入文件。

3.1 模擬登陸

利用Python進(jìn)行模擬登陸一般有三種方法: 一是POST 請(qǐng)求方法,需要在后臺(tái)獲取登錄的 URL并填寫請(qǐng)求體參數(shù),然后 POST 請(qǐng)求登錄;二是添加 Cookies 方法,先登錄將獲取到的 Cookies 加入 Headers 中,最后用 GET 方法請(qǐng)求登錄;三是自動(dòng)化測(cè)試工具Selenium 模擬登錄,自動(dòng)完成賬號(hào)和密碼的輸入代替手工操作。本文用使用的是第三種,由程序控制瀏覽器完成登錄并跳轉(zhuǎn)入登錄后的頁(yè)面。

3.2關(guān)鍵字搜索

程序可以根據(jù)用戶的需求進(jìn)行有用信息的提取,由用戶輸入關(guān)鍵字,程序收到關(guān)鍵字后開始搜索,并在窗口打印出獲取信息。此時(shí)用到的關(guān)鍵語(yǔ)句是Selenium庫(kù)里的CSS locator語(yǔ)句,使用CSS_SELECTOR定位到網(wǎng)頁(yè)源代碼中有用信息的準(zhǔn)確位置。

3.3 信息獲取

網(wǎng)頁(yè)信息爬取,常用的方法有兩種,一是使用正則表達(dá)式去提取相關(guān)內(nèi)容,二是使用python庫(kù)。使用正則表達(dá)式通過(guò)提前設(shè)定好一些特殊的字及字符組合,匹配出網(wǎng)頁(yè)的特定內(nèi)容,對(duì)初學(xué)者來(lái)說(shuō)比較困難,因此本文從第二種方式使用python庫(kù)來(lái)入手。需要提取的信息有兩部分,電影標(biāo)題和詳情頁(yè)面。數(shù)據(jù)爬取的執(zhí)行過(guò)程分為:一是分析網(wǎng)頁(yè)源代碼結(jié)構(gòu)。利用開發(fā)者工具觀察源代碼,確定每個(gè)數(shù)據(jù)對(duì)應(yīng)的元素位置和Class 名稱。在對(duì)網(wǎng)頁(yè)進(jìn)行分析后發(fā)現(xiàn),電影名均在同一個(gè)類名的標(biāo)簽下面,而電影的鏈接在另一個(gè)標(biāo)簽下面。在這里使用BeautifulSoup庫(kù)對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行爬取。通過(guò)該庫(kù)的soup.find_all語(yǔ)句提取出電影名稱、劇情簡(jiǎn)介,獲取到電影詳情頁(yè)的網(wǎng)址;二是根據(jù)上步獲取的網(wǎng)址抓取網(wǎng)頁(yè);三是處理數(shù)據(jù)且將抓取后的數(shù)據(jù)寫入指定文件中。上述三步重復(fù)執(zhí)行直至數(shù)據(jù)采集結(jié)束。

3.4數(shù)據(jù)保存

數(shù)據(jù)提取完成后,程序顯示開始和結(jié)束的時(shí)間,將結(jié)果保存在指定位置的csv文檔中。

4、結(jié)束語(yǔ)

社會(huì)發(fā)展已經(jīng)進(jìn)入到大數(shù)據(jù)時(shí)代,人類社會(huì)產(chǎn)生的信息數(shù)據(jù)呈爆炸增長(zhǎng)的態(tài)勢(shì),使用網(wǎng)頁(yè)爬蟲程序來(lái)對(duì)網(wǎng)頁(yè)進(jìn)行搜索,可以獲取到更為真實(shí)全面的海量數(shù)據(jù),在信息繁蕪的網(wǎng)絡(luò)時(shí)代更為行之有效。因此掌握爬蟲程序編寫技能在大數(shù)據(jù)時(shí)代信息搜集非常必要。而Python 作為一門流行的編程語(yǔ)言,具有靈活、簡(jiǎn)單、易用、快捷便利諸多優(yōu)點(diǎn)。本文主要采用 Python帶有的Selenium、BeautifulSoup、requests等功能強(qiáng)大的庫(kù),通過(guò)探索web頁(yè)面數(shù)據(jù)、解析Html和提取鏈接數(shù)據(jù)的方法,深入研究爬蟲的基本原理與數(shù)據(jù)挖掘的算法。爬蟲程序獲取的海量有效數(shù)據(jù),為后續(xù)進(jìn)行諸如市場(chǎng)預(yù)測(cè)、文本分析、機(jī)器訓(xùn)練方法等數(shù)據(jù)分析工作提供了數(shù)據(jù)來(lái)源。掌握 Python 抓取數(shù)據(jù)的方法、熟悉搜索引擎和網(wǎng)絡(luò)爬蟲相關(guān)基礎(chǔ)以及檢索技術(shù),為將來(lái)從事數(shù)據(jù)收集與處理等相關(guān)工作打下良好基礎(chǔ)。

參考文獻(xiàn)

[1] 成文瑩,李秀敏 . 基于Python的電影數(shù)據(jù)爬取與數(shù)據(jù)可視化分析研究[J].電腦知識(shí)與技術(shù),2019(15):8-10.

[2] 方芳. 基于Scrapy框架京東網(wǎng)站筆記本電腦評(píng)論數(shù)據(jù)爬取和分析[J].電腦知識(shí)與技術(shù),2020(6):7-9.

[3] 嚴(yán)家馨.基于Python對(duì)資訊信息的網(wǎng)絡(luò)爬蟲設(shè)計(jì)[J].科學(xué)技術(shù)創(chuàng)新,2020(05):57-58.

[4] 張艷.基于Python的網(wǎng)絡(luò)數(shù)據(jù)爬蟲程序設(shè)計(jì)[J]. 電腦編程技巧與維護(hù) 2020,(04),26-27

作者簡(jiǎn)介:周萍(1977年12月—)、女、漢族、籍貫四川省德陽(yáng)市、現(xiàn)供職單位解放軍78102部隊(duì)高級(jí)工程師、碩士研究生、研究方向指揮自動(dòng)化;

李歌(1985年1月—)、男、漢族、籍貫河北省霸州市、現(xiàn)供職單位解放軍78102部隊(duì)工程師、本科、研究方向計(jì)算機(jī)應(yīng)用。

猜你喜歡
網(wǎng)絡(luò)爬蟲
煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
主題搜索引擎中網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)研究
淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲流量
網(wǎng)絡(luò)爬蟲針對(duì)“反爬”網(wǎng)站的爬取策略研究
虎林市| 清水县| 革吉县| 白沙| 九龙县| 丹巴县| 五莲县| 浙江省| 汉源县| 阿尔山市| 陈巴尔虎旗| 清徐县| 新野县| 贵德县| 应城市| 阿克| 峡江县| 富顺县| 剑河县| 册亨县| 镇巴县| 霍林郭勒市| 金坛市| 育儿| 安新县| 沙湾县| 贺州市| 镇远县| 永城市| 济阳县| 高唐县| 建昌县| 福贡县| 平顺县| 江油市| 五台县| 屏山县| 临沭县| 弥勒县| 韩城市| 米泉市|