• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      豆瓣大連電影票信息爬取與存儲

      2021-07-04 13:10:25孫愛婷
      科學(xué)與財(cái)富 2021年11期
      關(guān)鍵詞:解析器關(guān)系數(shù)據(jù)庫爬蟲

      摘 要:針對爬取工作量較重,分析內(nèi)容繁雜的網(wǎng)站而言,利用正則表達(dá)式的re模塊實(shí)現(xiàn)爬蟲是較困難的,此時(shí)需要更高效的BeautifulSoup分析工具來解決這一問題。爬取豆瓣電影票-大連城市網(wǎng)站中的全部電影列表,首先進(jìn)行網(wǎng)頁源代碼分析,采用python自帶的html.parser解析器解析網(wǎng)頁,爬取所需電影信息,然后采用5種不同方式進(jìn)行存儲,方便進(jìn)行不同需求的數(shù)據(jù)挖掘和分析。

      關(guān)鍵詞:網(wǎng)頁爬取;BeautifulSoup;解析器

      一、BeautifulSoup

      BeautifulSoup是網(wǎng)絡(luò)爬蟲必學(xué)的技能之一,是一個(gè)可以從HTML或XML文件中爬取數(shù)據(jù)的python庫。BeautifulSoup主要功能是從復(fù)雜的網(wǎng)頁解析和爬取HTML或XML內(nèi)容,哪怕此時(shí)使用BeautifulSoup實(shí)現(xiàn)的是海量的網(wǎng)站源碼的分析工作,我們會發(fā)現(xiàn),它的實(shí)現(xiàn)過程也非常簡單,極大地提高了分析源碼的效率。

      同時(shí),BeautifulSoup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,還支持一些第三方庫的解析,如果不進(jìn)行特殊的解析器安裝,Python則會使用默認(rèn)的解析器?;谝陨咸匦?,BeautifulSoup已成為和Lxml一樣出色的Python解析器,為用戶靈活提供不同的網(wǎng)站數(shù)據(jù)爬取和解析策略。

      二、基于BeautifulSoup的獨(dú)立數(shù)據(jù)爬取

      1.實(shí)例分析

      本實(shí)例的爬取目標(biāo)是豆瓣電影票-大連城市網(wǎng)站中的全部電影列表,網(wǎng)站內(nèi)容見圖1,網(wǎng)站地址如下:https://movie.douban.com/cinema/nowplaying/dalian/,部分網(wǎng)頁源代碼如圖2所示,需要說明的是,由于網(wǎng)站內(nèi)容不斷地動態(tài)更新,因此每次運(yùn)行得到的結(jié)果可能會有差異。

      2.源代碼分析

      我們的目標(biāo)是電影列表,首先從圖2中搜索到目標(biāo)位置,然后通過“soup.find_all(‘li’,class_=’list-item’)”,找到全部class_屬性為“l(fā)ist-item”的<li>標(biāo)簽,爬取需要的電影信息。例如,item[‘data-title’]獲取<li>標(biāo)簽中的指定屬性data-title(電影名)對應(yīng)的value值,item[‘id’]對應(yīng)屬性id(電影ID)的value值等,最后依次爬取需要的內(nèi)容即可。

      3.具體代碼實(shí)現(xiàn)

      本實(shí)例實(shí)現(xiàn)了爬取豆瓣電影票-大連城市網(wǎng)站中的全部電影列表,爬取信息完整代碼如圖3所示。

      4.爬取信息存儲

      通過以上程序可以得到所有大連城市電影信息,緊接著可以采用不同存儲方式進(jìn)行存取,以下列出了5種存儲方式:

      (1)存儲于.txt文檔

      使用python讀寫文本數(shù)據(jù),需要使用open()方法,用于打開一個(gè)文件,將爬取內(nèi)容寫入當(dāng)前打開的文件中。注意,open()方法打開文件后,一定不要忘記關(guān)閉文件對象,即結(jié)束文件的使用時(shí)調(diào)用close()方法。具體代碼見圖4所示。

      (2)存儲于.csv文件

      CSV文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不包含二進(jìn)制數(shù)字。CSV文件由任意數(shù)量的記錄組成,記錄之間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其他字符或字符串,最常見的是逗號或制表符。使用該存儲方式之前需要import csv,實(shí)現(xiàn)過程具體代碼見圖5所示。

      (3)存儲于.xls表格

      在python中,xlwt是讀取Excel文件的一個(gè)常用擴(kuò)展模塊,可以實(shí)現(xiàn)創(chuàng)建表單、寫入指定單元格、指定單元格樣式等常見功能,人為使用Excel實(shí)現(xiàn)的絕大部分寫入功能,都可以使用這個(gè)擴(kuò)展包實(shí)現(xiàn)。xlwt模塊同樣需要用戶單獨(dú)安裝:pip install xlwt,使用前導(dǎo)入xlwt包:import xlwt,實(shí)現(xiàn)過程如圖6所示。

      (4)存儲于.json文件

      JSON作為一種輕量級的數(shù)據(jù)交換格式,可作為讀寫數(shù)據(jù)的對象使用,通常使用JSON模塊,首先需要導(dǎo)入JSON庫:import json。在JSON模塊中,主要涉及json.dumps()、json.load()和json.loads()方法,實(shí)現(xiàn)過程如圖7所示。

      (5)存儲于MongoDB數(shù)據(jù)庫

      MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫中功能最豐富的、與關(guān)系數(shù)據(jù)庫最相近的NoSQL數(shù)據(jù)庫。使用前需要安裝MongoDB服務(wù)器端,然后安裝PyMongo模塊,該模塊是Python對Mongodb操作的接口包,它能夠?qū)崿F(xiàn)對MongoDB的增、刪、改、查及排序等操作。由于PyMongo模塊來源于第三方,因此未包含在Python的標(biāo)準(zhǔn)庫中,需要自行安裝:pip install PyMongo,然后導(dǎo)入PyMongo包:import pymongo,實(shí)現(xiàn)過程如圖8所示。

      參考文獻(xiàn):

      [1]奚增輝等.應(yīng)用主題爬蟲的電力網(wǎng)絡(luò)輿情數(shù)據(jù)采集[J].西安工程大學(xué)學(xué)報(bào), 202003).

      [2]高雅婷,劉雅舉. 基于Python的網(wǎng)上購物數(shù)據(jù)爬取[J].現(xiàn)代信息科技,2020(5):16.

      [3]王彥雅. 基于Python的廊坊市二手房數(shù)據(jù)爬取及分析[J].電腦知識與技術(shù),2020(29).

      [4]于學(xué)斗,柏曉鈺.基于Python的城市天氣數(shù)據(jù)爬蟲程序分析[J].辦公自動化. 2020,27(07).

      作者簡介:孫愛婷(1984-),女,漢族,遼寧大連人,講師,碩士,遼寧輕工職業(yè)學(xué)院,信息工程系大數(shù)據(jù)技術(shù)專業(yè)主任,主要研究方向:大數(shù)據(jù)技術(shù)。

      猜你喜歡
      解析器關(guān)系數(shù)據(jù)庫爬蟲
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
      關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
      山東冶金(2022年2期)2022-08-08 01:51:30
      基于多解析器的域名隱私保護(hù)機(jī)制
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
      如何防御DNS陷阱?常用3種DNS欺騙手法
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      電子測試(2018年1期)2018-04-18 11:53:04
      一種基于無關(guān)DNS的通信隱私保護(hù)技術(shù)研究
      電子世界(2018年14期)2018-04-15 16:14:25
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
      东平县| 利辛县| 五寨县| 霍林郭勒市| 平阳县| 萨嘎县| 平利县| 仁化县| 时尚| 阿城市| 康定县| 乾安县| 东乡族自治县| 甘谷县| 景谷| 方山县| 尉氏县| 大渡口区| 依兰县| 蓬莱市| 安仁县| 普定县| 元氏县| 哈尔滨市| 上犹县| 柘荣县| 秭归县| 金塔县| 葵青区| 读书| 涟源市| 巩义市| 临沂市| 吉林市| 宁阳县| 琼中| 玛纳斯县| 扶风县| 惠东县| 宁波市| 西盟|