五月丁香婷婷爱,精品国产一二三区美图,原创av一区二区,亚洲国产成人午夜在线

文史論文

您當(dāng)前的位置:發(fā)表學(xué)術(shù)論文網(wǎng)文史論文》 熱銷圖書(shū)爬取數(shù)據(jù)的BeautifulSoup庫(kù)解析> 正文

熱銷圖書(shū)爬取數(shù)據(jù)的BeautifulSoup庫(kù)解析

所屬分類:文史論文 閱讀次 時(shí)間:2021-05-17 10:30

本文摘要:摘要BeautifulSoup庫(kù)是python語(yǔ)言關(guān)于網(wǎng)絡(luò)爬蟲(chóng)爬取頁(yè)面解析的第三方庫(kù)。它能根據(jù)html、xml以及html5lib語(yǔ)法建立解析樹(shù),進(jìn)而高效解析網(wǎng)頁(yè)內(nèi)容。本文從基本元素、網(wǎng)頁(yè)內(nèi)容遍歷提取方法入手介紹BeautifulSoup庫(kù)的工作原理,并結(jié)合電商平臺(tái)最新的圖書(shū)銷售數(shù)據(jù)為

  摘要BeautifulSoup庫(kù)是python語(yǔ)言關(guān)于網(wǎng)絡(luò)爬蟲(chóng)爬取頁(yè)面解析的第三方庫(kù)。它能根據(jù)html、xml以及html5lib語(yǔ)法建立解析樹(shù),進(jìn)而高效解析網(wǎng)頁(yè)內(nèi)容。本文從基本元素、網(wǎng)頁(yè)內(nèi)容遍歷提取方法入手介紹BeautifulSoup庫(kù)的工作原理,并結(jié)合電商平臺(tái)最新的圖書(shū)銷售數(shù)據(jù)為實(shí)例,進(jìn)行爬取信息的解析展示。

  關(guān)鍵詞網(wǎng)絡(luò)爬蟲(chóng);網(wǎng)頁(yè)解析;BeautifulSoup庫(kù)

數(shù)據(jù)庫(kù)解析

  1引言

  BeautifulSoup庫(kù)是python語(yǔ)言的第三方爬蟲(chóng)解析庫(kù)。它提供了簡(jiǎn)單便捷的python式函數(shù)來(lái)處理復(fù)雜的Web頁(yè)面的分析需求,是解析、遍歷、維護(hù)標(biāo)簽樹(shù)的功能庫(kù)。BeautifulSoup庫(kù)不僅支持html,還支持lxml以及htnl5lib解析器。通過(guò)解析文檔為用戶爬取有價(jià)值的數(shù)據(jù),大大節(jié)省開(kāi)發(fā)時(shí)間,成為廣受歡迎的網(wǎng)頁(yè)解析工具之一[1]。

  2BeautifulSoup庫(kù)的使用

  利用爬蟲(chóng)獲取網(wǎng)頁(yè)信息,就是從html代碼中抽取我們需要的信息。html代碼由眾多標(biāo)簽組成。BeautifulSoup庫(kù)的主要功能就是精確定位標(biāo)簽以及從標(biāo)簽中提取內(nèi)容[2]。

  2.1BeautifulSoup庫(kù)的基本元素

  BeautifulSoup庫(kù)可以將html文檔轉(zhuǎn)換為一個(gè)復(fù)雜的樹(shù)形結(jié)構(gòu),每個(gè)節(jié)點(diǎn)就是一個(gè)對(duì)象,所有對(duì)象可以歸納為4類:(1)Tag對(duì)象:每一個(gè)html文檔中的Tag標(biāo)簽就是BeautifulSoup庫(kù)一個(gè)對(duì)象。(2)NavigableString對(duì)象:Tag對(duì)象的內(nèi)部文本節(jié)點(diǎn),可以通過(guò)Tag.string返回該對(duì)象。(3)BeautifulSoup對(duì)象:通過(guò)類的實(shí)例化BeautifulSoup對(duì)象可以將html文檔轉(zhuǎn)換為一個(gè)樹(shù)形結(jié)構(gòu),以表示html的文檔結(jié)構(gòu)。(4)Comment對(duì)象:返回注釋標(biāo)簽的文本節(jié)點(diǎn),是NavigableString對(duì)象的子類。

  2.2BeautifulSoup庫(kù)的信息提取方法

  BeautifulSoup對(duì)象作為一棵html標(biāo)簽樹(shù),存在眾多由標(biāo)簽對(duì)象及非屬性字符串組成的節(jié)點(diǎn)[3]。由于節(jié)點(diǎn)的非線性結(jié)構(gòu),相對(duì)于它所在的位置,使得它與其他節(jié)點(diǎn)構(gòu)成了上下、平行關(guān)系,從而衍生出該節(jié)點(diǎn)的父節(jié)點(diǎn)、子節(jié)點(diǎn)、兄弟節(jié)點(diǎn)的上行遍歷、下行遍歷和平行遍歷。節(jié)點(diǎn)的下行遍歷可以通過(guò)子孫節(jié)點(diǎn)實(shí)現(xiàn)。.contents屬性可將所有子節(jié)點(diǎn)以列表的方式輸出,通過(guò).children生成器,可對(duì)所有子孫節(jié)點(diǎn)進(jìn)行遍歷。節(jié)點(diǎn)的上行遍歷可以通過(guò)父輩節(jié)點(diǎn)實(shí)現(xiàn),.parent屬性可將所有父節(jié)點(diǎn)以列表的方式輸出,通過(guò).parents生成器,可對(duì)所有父輩節(jié)點(diǎn)進(jìn)行遍歷。節(jié)點(diǎn)的平行遍歷可通過(guò)兄弟節(jié)點(diǎn)實(shí)現(xiàn),.next_sibling屬性獲取了該節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)。.

  previous_sibling則與之相反,如果節(jié)點(diǎn)不存在,則返回None,兄弟節(jié)點(diǎn)的平行遍歷要求兩節(jié)點(diǎn)需為同級(jí)節(jié)點(diǎn),即屬于同一個(gè)父節(jié)點(diǎn)。對(duì)標(biāo)簽樹(shù)符合指定內(nèi)容的節(jié)點(diǎn)遍歷則需要配合搜索方法共同作用,BeautifulSoup庫(kù)提供了8種信息查找和獲取方法,其中使用最廣泛的是利用find_all()方法搜索標(biāo)簽樹(shù)[4]。find_all(name,attrs,recursive,text,**kwargs)方法搜索當(dāng)前tag的所有子節(jié)點(diǎn),并判斷是否符合過(guò)濾器的條件。

  經(jīng)濟(jì)論文投稿刊物:《經(jīng)濟(jì)數(shù)學(xué)》(季刊)創(chuàng)刊于1984年,主要刊登數(shù)量經(jīng)濟(jì)學(xué)、數(shù)理經(jīng)濟(jì)學(xué)、計(jì)量經(jīng)濟(jì)學(xué)、經(jīng)濟(jì)對(duì)策論、經(jīng)濟(jì)控制論、經(jīng)濟(jì)預(yù)測(cè)與決策和經(jīng)濟(jì)應(yīng)用數(shù)學(xué)領(lǐng)域中創(chuàng)造性的研究成果。本刊現(xiàn)為季刊,向國(guó)內(nèi)外公開(kāi)發(fā)行。

  3電商平臺(tái)圖書(shū)熱銷數(shù)據(jù)的爬取解析

  各大電商平臺(tái)的商品成交數(shù)據(jù)蘊(yùn)含大量的有用信息。本文以京東平臺(tái)2020年10月份的圖書(shū)銷售信息為依據(jù),利用python的requests庫(kù)和BeautifulSoup庫(kù)爬取并解析出該時(shí)段京東圖書(shū)銷售榜的top100條信息,以幫助用戶獲取最新熱門(mén)圖書(shū)資源。

  (1)數(shù)據(jù)爬取。在數(shù)據(jù)爬取之前先閱讀京東網(wǎng)站的網(wǎng)絡(luò)robots協(xié)議,出于數(shù)據(jù)保護(hù)考量,網(wǎng)站對(duì)爬蟲(chóng)訪問(wèn)進(jìn)行了反爬設(shè)置,需要修改網(wǎng)絡(luò)請(qǐng)求頭中的user-agent為合法瀏覽器。然后利用requests庫(kù)GET方法對(duì)目標(biāo)網(wǎng)頁(yè)進(jìn)行爬取,從而獲得當(dāng)前頁(yè)面的html文件。defaskURL(url):head={"user-agent":"Chrome"}r=requests.get(url,headers=head)r.raise_for_status()r.encoding=r.apparent_encodinghtml=r.textreturnhtml

  (2)數(shù)據(jù)解析。利用requests庫(kù)爬取的是整個(gè)網(wǎng)頁(yè)的html文檔,其中大部分?jǐn)?shù)據(jù)并不是我們想要的圖書(shū)熱銷信息,利用BeautifulSoup庫(kù)進(jìn)行有價(jià)值數(shù)據(jù)的解析提取,通過(guò)建立soup對(duì)象,利用find_all("div",class_="p-detail")找到逐條的熱銷圖書(shū)信息,并進(jìn)行數(shù)據(jù)清洗,只保留圖書(shū)名稱、作者以及出版社信息,存儲(chǔ)為列表數(shù)據(jù)。defgetData(html):html=askURL(url)soup=BeautifulSoup(html,"html.parser")data=[]foriteminsoup.find_all("div",class_="p-detail"):aset=item.find_all("a")data.append([aset[0].attrs['title'],"\t作者"+aset[1].attrs['title'],"\t"+aset[2].attrs['title']])returndata

  (3)數(shù)據(jù)保存。將解析完成的數(shù)據(jù),加以編號(hào),存放到本地,編碼方式設(shè)置為utf-8,以免出現(xiàn)亂碼[5]。defsaveData(datalist,savepath):withopen(savepath,"w",encoding="utf-8")asf:fordataindatalist:forlineindata:f.writelines(line)f.write("\n\n")return

  參考文獻(xiàn)

  [1]蘇旋.分布式網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究與實(shí)現(xiàn)[碩士學(xué)位論文].哈爾濱工業(yè)大學(xué),哈爾濱,2012

  [2]夏敏捷,楊關(guān),等.Python程序設(shè)計(jì)-從基礎(chǔ)到開(kāi)發(fā).北京:清華大學(xué)出版社,2017

  [3]嵩天,禮欣,黃天羽.Python語(yǔ)言程序設(shè)計(jì)基礎(chǔ).第2版.北京:高等教育出版社,2017

  [4]郭麗蓉.基于Python的網(wǎng)絡(luò)爬蟲(chóng)程序設(shè)計(jì).電子技術(shù)與軟件工程,2017(23):248-249

  [5]魏倩男,賀正楚,陳一鳴.基于網(wǎng)絡(luò)爬蟲(chóng)的京東電商平臺(tái)數(shù)據(jù)分析.經(jīng)濟(jì)數(shù)學(xué),2018,35(1):77-85

  作者:鞠慧

轉(zhuǎn)載請(qǐng)注明來(lái)自發(fā)表學(xué)術(shù)論文網(wǎng):http://liangshanbai.cn/wslw/26786.html

AAA亚洲欧洲国产另类欧美| 天天干天天日天天肏天天射| 国产在线无码精品| 亚洲欧洲国产码专区在线观| 国产欧美日韩三级在线观看| 中文高清无码在线播放| 色诱Av一区二区三区四区| 99久久精品人妻| 免费的av黄片在线看| 精品激情视频乱区区区| 日韩国产伦理久久久| 欧美大片久久| 熟女人妻自拍av| 少妇网站最新| 欧美精品一区专区| 亚洲不卡91| 日韩 成人 在线 欧美| 95福利区试看视频| 国产一区二区夜夜视频| 好爽又高潮了毛片免费下载| 久久精品一图二图三图| 两位美女操逼视频| 天天干天天玩天射| 老司机 人妻| 古典淫秽白| 亚洲永久高清无码一区二区| 91超超碰人妻| 欧美日韩美女人妻| 91福利射| 综合久久69| 色天堂最新网站| 午夜激情网站一区| 日逼片麻豆| 超碰AV四虎| 一级A级金品| 黄色小视频在线观看不卡| 黄色三级片片视频| a√不卡视频| 欧美日韩手机精品| 亚洲h一品二品在线观看| 国产精品久久久久久久乖乖|