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

?

基于Python對豆瓣電影數(shù)據(jù)爬蟲的設(shè)計與實現(xiàn)

2019-08-23 03:07:14裴麗麗
電子技術(shù)與軟件工程 2019年13期
關(guān)鍵詞:源碼爬蟲網(wǎng)頁

文/裴麗麗

1 概述

根據(jù)《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》,到2018年12月為止,全年新增網(wǎng)民5653萬,網(wǎng)民規(guī)模達8.29億,普及率為59.6%,與2017年底相比提升3.8%。互聯(lián)網(wǎng)的普及使得網(wǎng)上的信息資源呈現(xiàn)爆炸式增長,大數(shù)據(jù)時代的到來,對如何在短時間內(nèi)從網(wǎng)頁中找到用戶需要的信息提出了挑戰(zhàn),無論是搜索引擎還是個人或者組織,要獲取目標數(shù)據(jù),都要從公開網(wǎng)站爬取數(shù)據(jù),在這樣的需求之下,網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)運而生。

網(wǎng)絡(luò)爬蟲,又被稱為網(wǎng)頁蜘蛛或者網(wǎng)絡(luò)機器人,是指按照某種規(guī)則從網(wǎng)絡(luò)上自動爬取用戶所需內(nèi)容的腳本程序。通常情況下,每個網(wǎng)頁包含其他網(wǎng)頁的入口,網(wǎng)絡(luò)爬蟲可以通過一個網(wǎng)址,鏈接進入其他網(wǎng)址獲取內(nèi)容,最后返還給廣大用戶所需要的信息數(shù)據(jù)。目前最適合用來網(wǎng)絡(luò)爬蟲的編程語言是Python,Python語言整合了針對網(wǎng)絡(luò)爬蟲所需要的一系列庫,能夠高效率得完成爬取目標數(shù)據(jù)。

2 網(wǎng)絡(luò)爬蟲的實現(xiàn)

本文以豆瓣網(wǎng)電影模塊為例,實現(xiàn)了Python網(wǎng)絡(luò)爬蟲的全過程,并將爬蟲結(jié)果保存在本地。主要分四個步驟實現(xiàn),尋找爬蟲入口,使用re和requests庫獲得所有電影信息的

url鏈接、使用BeautifulSoup庫解析電影數(shù)據(jù)、將爬取到的信息保存到本地。

2.1 編程環(huán)境

Window10操作系統(tǒng)、python3.7、Pycharm集成開發(fā)環(huán)境、谷歌瀏覽器

2.2 尋找爬蟲入口

豆瓣電影網(wǎng)站與有些網(wǎng)站不同,無法直接在當前頁面的網(wǎng)頁源碼中找到我們所需要抓取電影的具體信息,因此需要尋找爬蟲入口。通過谷歌瀏覽器:更多工具->開發(fā)者工具->Network->XHR發(fā)現(xiàn)可抓取鏈接到每部電影的網(wǎng)頁https://movie.douban.com/j/search_subjects?type=movie&tag=最新& sort = rec ommend & page _limit=20&page_start=0,其中,tag為查詢電影的類型,共有17種類型,本文以熱門電影為例進行爬蟲的設(shè)計與實現(xiàn);sort為排序方式;page_limit為每頁顯示的電影個數(shù),page_start為查詢電影起始位置。抓取信息時,只需改變tag及page_start(20的倍數(shù)),就可以獲取更多的url鏈接。具體如圖1所示。

2.3 使用re和requests庫獲取所有電影信息的url鏈接

通過import requests測試程序是否報錯,確定安裝好requests庫后,通過requests 庫提取網(wǎng)頁源碼,requests 庫比urllib庫提取網(wǎng)頁源碼更簡潔,方便開發(fā)者使用,只需要幾步就可以實現(xiàn)。獲得網(wǎng)頁源碼后,繼續(xù)通過re庫提取url鏈接,圖2中,url鏈接是"url":"https://movie.douban.com/subject/27060077/"這樣的形式,該形式不是一個標準的url鏈接,需要進行相應(yīng)的處理,假設(shè)當前需要提取100部電影的信息,具體代碼和注釋如下:

#導(dǎo)入所需庫

import requests

import re

#page控制抓取電影的數(shù)量

page=0

while page<=80:

url="https://movie.douban.com/j/search_subjects?type=movie&tag=熱 門&sort=recommend&""page_limit=20&page_start="+str(page)

#通過requests庫的get()方法獲取源碼

r = requests.get(url)

html = r.text

#通過re庫提取當前頁面的url鏈接

ree = re.compile('"url":"(.*?)"',re.S)

items = re.findall(ree,html)

for item in items:

#對url形式進行處理

url = item.replace("\","")

print(url)

圖1:url鏈接入口

圖2:獲取url鏈接

圖3:部分網(wǎng)頁源碼

圖4:提取電影信息

圖5:存儲的csv文件

page+=20

2.4 使用BeautifulSoup庫解析電影數(shù)據(jù)

通過from bs4 import BeautifulSoup測試程序是否報錯,確定安裝好BeautifulSoup庫后,通過該庫解析電影數(shù)據(jù),提取電影的具體信息,進入一部電影,部分網(wǎng)頁源代碼如圖3所示。

如圖4,提取該電影的名稱,上映年份,導(dǎo)演,主演,豆瓣評分,短評等信息,部分提取代碼如下:

2.5 保存到本地

如圖5,從網(wǎng)頁中爬取到數(shù)據(jù)后,需要保存到本地,既可以保存在文件中,也可以保存在數(shù)據(jù)庫中,本文將結(jié)果保存為csv文件。部分代碼如下:

with open("E:\a.csv","a")as f:

#中間代碼為2.4中解析出的電影信息

f.write(movie)

f.close()

3 結(jié)語

本文基于Python提供豐富的庫,實現(xiàn)了豆瓣電影種熱門類型電影的爬取,可以根據(jù)提出的爬蟲方法對豆瓣官網(wǎng)的圖書和音樂等其他模塊進行爬取,以此來研究用戶的喜好。當今處于大數(shù)據(jù)時代,用戶對各類數(shù)據(jù)的需求越來越大,爬蟲作為數(shù)據(jù)收集的一種手段,具有廣闊的應(yīng)用前景。

猜你喜歡
源碼爬蟲網(wǎng)頁
基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測方法
計算機時代(2023年6期)2023-06-15 17:49:09
利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
企業(yè)如何保護源碼
基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
電子制作(2018年10期)2018-08-04 03:24:38
利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
電子測試(2018年1期)2018-04-18 11:53:04
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
電子制作(2017年2期)2017-05-17 03:54:56
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
電子制作(2017年9期)2017-04-17 03:00:46
基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
計算機教育(2016年4期)2016-05-20 02:36:05
旬邑县| 阳山县| 南丰县| 利津县| 油尖旺区| 五华县| 明水县| 资源县| 西乌珠穆沁旗| 汝州市| 蒙山县| 兰坪| 藁城市| 乡宁县| 沁源县| 迁安市| 垣曲县| 孝义市| 融水| 高要市| 邵武市| 河西区| 白朗县| 穆棱市| 澜沧| 柳州市| 大冶市| 满洲里市| 渭源县| 崇阳县| 大厂| 石门县| 望都县| 监利县| 太谷县| 闽清县| 麻城市| 紫金县| 隆昌县| 留坝县| 中阳县|