亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        beautifulsoup庫在網(wǎng)絡(luò)爬蟲中的使用技巧及應(yīng)用

        2019-12-10 09:48:22沈承放莫達(dá)隆
        電腦知識與技術(shù) 2019年28期
        關(guān)鍵詞:解析器爬蟲網(wǎng)頁

        沈承放 莫達(dá)隆

        摘要:beautifulsoup庫是一個(gè)優(yōu)秀的python第三方庫,主要用于HTML或XML數(shù)據(jù)的解析。介紹了beautifulsoup庫在python中的地位和作用,分析beautifulsoup庫支持的4種解析器的使用,以及BeautifulSoup類的5種基本元素和3種節(jié)點(diǎn)信息的查找和獲取,總結(jié)beautifulsoup庫的9種目標(biāo)數(shù)據(jù)的提取方法。最后通過實(shí)際案例應(yīng)用指出了beautifulsoup庫在解析HTML或XML數(shù)據(jù)方面簡潔和強(qiáng)大的優(yōu)秀表現(xiàn)。

        關(guān)鍵詞: python;beautifulsoup庫;HTML;XML

        中圖分類號:TP311.1? ? ? ?文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2019)28-0013-04

        Abstract: The beautifulsoup library is an excellent Python third-party library, which is mainly used for parsing HTML or XML data. This paper introduces the position and function of beautifulsoup Library in python, analyses the use of four parsers supported by beautifulsoup library, and the search and acquisition of five basic elements and three node information of BeautifulSoup class. It summarizes nine methods of extracting target data from beautifulsoup library. Finally, it points out the excellent performance of beautifulsoup Library in parsing HTML or XML data through practical case application.

        Key words: Python; beautifulsoup library; HTML; XML

        1 引言

        Python是一種容易上手、易讀性強(qiáng)、免費(fèi)的計(jì)算機(jī)程序設(shè)計(jì)語言,廣泛應(yīng)用于文本處理、網(wǎng)絡(luò)編程和多媒體應(yīng)用等多種領(lǐng)域,如今已經(jīng)成為世界上最受歡迎的程序設(shè)計(jì)語言之一。它擁有強(qiáng)大且豐富的庫,這使得它更加簡潔、更易操作。其中beautifulsoup庫是一個(gè)優(yōu)秀的python第三方庫,主要用于HTML或XML數(shù)據(jù)的解析,使其更具結(jié)構(gòu)化和格式化,并且可以從解析后的HTML或XML數(shù)據(jù)中提取有用信息。相較于其他解析庫,beautifulsoup庫更加簡潔、高效、功能強(qiáng)大,它支持多種解析器,包括python自帶的解析器“html.parser”,以及第三方的lxml和html5lib等。它不僅可以解析HTML或XML數(shù)據(jù),也可以對解析后的數(shù)據(jù)進(jìn)行處理以及輸出。因此在使用python解析HTML或XML數(shù)據(jù)時(shí),beautifulsoup庫已經(jīng)成為最受歡迎的方法之一。

        2 Beautifulsoup庫的使用技巧

        下面介紹用于網(wǎng)頁設(shè)計(jì)的HTML和XML兩種標(biāo)記語言,以及 beautifulsoup庫在解析HTML和XML數(shù)據(jù)方面的使用技巧。

        2.1 HTML和XML

        HTML是超文本標(biāo)記語言,主要應(yīng)用于網(wǎng)頁制作,它可以包含文字、鏈接、圖片、視頻和音頻等信息。HTML本質(zhì)上是文本文件,需要瀏覽器的解析才能展現(xiàn)出網(wǎng)頁的內(nèi)容信息。HTML是由標(biāo)簽組成的一個(gè)標(biāo)簽樹,以標(biāo)簽“”開始,以標(biāo)簽“”結(jié)束,并且有頭和主體兩個(gè)部分,頭部分為網(wǎng)頁的主要信息,在標(biāo)簽對“”和 “”內(nèi),主體部分為網(wǎng)頁的內(nèi)容,在標(biāo)簽對“”和“”內(nèi)。語法形式如下圖。

        XML是可擴(kuò)展標(biāo)記語言,用于對電子文件的標(biāo)記,并使其具有結(jié)構(gòu)化特征,主要應(yīng)用于數(shù)據(jù)的傳輸和存儲,但它本身只是文本文件,需要通過編寫程序才能實(shí)現(xiàn)傳輸和存儲等功能。XML允許自行定義標(biāo)簽。在語法方面,XML是與HTML是相似的,不同的是XML標(biāo)記大小寫敏感,且要求所有標(biāo)記必須成對出現(xiàn)。語法形式如下圖。

        2.2 beautifulsoup庫

        beautifulsoup庫是一個(gè)優(yōu)秀的python第三方庫,主要用于HTML或XML格式數(shù)據(jù)的解析,使其更具結(jié)構(gòu)化和格式化,并且可以從解析后的HTML或XML數(shù)據(jù)中查找、提取和修改目標(biāo)信息,因此也被廣泛應(yīng)用于網(wǎng)絡(luò)爬蟲。通過在cmd命令行里執(zhí)行“pip install beautifulsoup4”的方式進(jìn)行安裝,這里的beautifulsoup4是指第4版的beautifulsoup庫。由于在解析HTML或XML數(shù)據(jù)時(shí),主要用到的是beautifulsoup庫中的besutifulSoup類,因此其調(diào)用方式為“from bs4 import BesutifulSoup”,其中“bs4”是beautifulsoup4庫的簡寫,“BesutifulSoup”是beautifulsoup庫的一個(gè)類型。BesutifulSoup類可以將HTML或XML數(shù)據(jù)轉(zhuǎn)化為一個(gè)besutifulSoup類型,從而實(shí)現(xiàn)數(shù)據(jù)的解析。

        Beautifulsoup庫可以自行將輸入的HTML或XML數(shù)據(jù)轉(zhuǎn)換為“Unicode”編碼,將輸出的HTML或XML數(shù)據(jù)轉(zhuǎn)換為“utf-8”編碼,因此在使用beautifulsoup庫解析數(shù)據(jù)時(shí)無須考慮數(shù)據(jù)的編碼方式。

        2.3 beautifulsoup庫的解析器

        beautifulsoup庫支持4種HTML或XML的解析器,它們可以將HTML或XML數(shù)據(jù)轉(zhuǎn)化為一個(gè)besutifulSoup類型,然后beautifulsoup庫就可以對數(shù)據(jù)中的信息進(jìn)行查找和獲取等操作。下表為4種解析器的使用方法及其說明,其中“markup”表示待解析的HTML或XML數(shù)據(jù)。

        [解析器 使用方法 備注 bs4 HTML解析器 BesutifulSoup(markup, 'html.parser') bs4庫自有的解析器,容錯能力強(qiáng) lxml HTML解析器 BesutifulSoup(markup,'lxml') 需要安裝lxml庫,速度快 lxml XML解析器 BesutifulSoup(markup,'xml') 需要安裝lxml庫,唯一可以解析xml,速度快 html5lib解析器 BesutifulSoup(markup,'html5lib') 需要安裝html5lib庫,容錯能力強(qiáng),瀏覽器方式 ]

        beautifulsoup庫除了可以用以上方法創(chuàng)建beautifulsoup類型解析數(shù)據(jù)以外,還可以通過打開本地文件的方式,例如“soup=BeautifulSoup(open(“example.html”), 'html.parser')。

        2.4 prettify()方法

        prettify()方法是beautifulsoup庫的一個(gè)可以將HTML和XML數(shù)據(jù)格式化輸出的方法,它可以自動為每一個(gè)標(biāo)簽和字符串添加換行符,并將其按照縮進(jìn)規(guī)則分行顯示,使 HTML和XML數(shù)據(jù)更加層次化和結(jié)構(gòu)化。

        2.5 BeautifulSoup類的基本元素

        BeautifulSoup類有5種基本元素,下表為BeautifulSoup類的基本元素及其獲取方法。應(yīng)用下表元素的獲取方法就可以做到一些簡單數(shù)據(jù)信息的查找和提取。

        2.6節(jié)點(diǎn)的獲取方法

        HTML和XML都是由標(biāo)簽和非屬性字符串等元素組成的一個(gè)標(biāo)簽樹,由于它們之間相對位置的不同,使得它們之間必定存在著某種節(jié)點(diǎn)關(guān)系,其中包括子孫節(jié)點(diǎn)、先輩節(jié)點(diǎn)和兄弟節(jié)點(diǎn)。理解和使用標(biāo)簽之間的節(jié)點(diǎn)關(guān)系可以更好地做到批量數(shù)據(jù)的提取。下表分別對子孫節(jié)點(diǎn)、先輩節(jié)點(diǎn)和兄弟節(jié)點(diǎn)的獲取方法進(jìn)行了介紹與說明。

        2.7 beautifulsoup庫信息獲取方法

        2.7.1 常用信息獲取方法介紹及說明

        在對HTML或XML數(shù)據(jù)進(jìn)行解析后,需要查找和提取目標(biāo)信息,beautifulsoup庫有8種常用的信息查找和獲取方法,由于它們的查找方式和返回結(jié)果各有不同,所以可以滿足各種獲取要求,具體的獲取方法及其說明見下表。

        2.7.2 select()方法

        除了前面提到的8種查找獲取信息的方法外,beautifulsoup庫還可以使用“select()”方法,它主要應(yīng)用了css選擇器方式來實(shí)現(xiàn)目標(biāo)信息的查找與獲取,以列表形式返回結(jié)果。css是層疊樣式表,主要應(yīng)用于網(wǎng)頁開發(fā)。在使用select()方法時(shí),選擇對象可以是標(biāo)簽名字、class屬性值、id屬性值等,但它們都需為css形式。當(dāng)選擇對象是標(biāo)簽名字的時(shí)候,使用方式是不變的,例如“select(‘p)”;當(dāng)選擇對象為class屬性時(shí),需要在屬性值前加“.”來表示該屬性值是class屬性的,例如在選擇“class=title”的屬性時(shí),應(yīng)采用“select(‘.title)”方式,多個(gè)屬性值之間用空格分開;當(dāng)選擇對象為id屬性時(shí),應(yīng)在屬性值前加“#”,采用“select(#search_url)”方式。選擇對象也可以是標(biāo)簽、class屬性值、id屬性值的組合形式,例如“select(a #search_url)”。在選擇標(biāo)簽時(shí)也可以加上屬性的信息,例如“select(p[class=title])”。在選擇標(biāo)簽后,可以使用“get_text()”方法獲取標(biāo)簽內(nèi)的文本信息,例如“p.get_text()”就可以獲得p標(biāo)簽內(nèi)的文本信息。

        3 beautifulsoup庫案例應(yīng)用

        以“example.html”HTML文本數(shù)據(jù)為例,介紹beautifulsoup庫在實(shí)際案例應(yīng)用中的優(yōu)秀表現(xiàn)?!癳xample.html” HTML文本數(shù)據(jù)見附錄。

        3.1 BeautifulSoup類元素的獲取

        首先導(dǎo)入beautifulsoup庫的BeautifulSoup類型,然后采用beautifulsoup庫自有的解析器解析案例中的HTML數(shù)據(jù),最后實(shí)現(xiàn)標(biāo)簽、標(biāo)簽名字、標(biāo)簽屬性、字符串和注釋的查找和獲取。

        3.2 節(jié)點(diǎn)的獲取及其遍歷

        3.2.1 節(jié)點(diǎn)的獲取

        3.2.2 節(jié)點(diǎn)的遍歷

        4 結(jié)束語

        beautifulsoup庫支持多種HTML和XML解析器,每個(gè)解析器都有自己的特點(diǎn),可以滿足人們對速度和容錯能力的要求。beautifulsoup庫可以通過解析將HTML和XML數(shù)據(jù)轉(zhuǎn)換為一個(gè)BeautifulSoup類型,并且可以對這個(gè)BeautifulSoup類型進(jìn)行一些簡單的處理,包括查找和獲取某些元素、節(jié)點(diǎn)和字符串信息等。beautifulsoup庫擁有多種獲取目標(biāo)信息的方法,可以滿足不同的數(shù)據(jù)獲取要求。

        參考文獻(xiàn):

        [1] 魏程程.基于Python的數(shù)據(jù)信息爬蟲技術(shù)[J].電子世界,2018(11):208-209.

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

        [3] 熊暢.基于Python爬蟲技術(shù)的網(wǎng)頁數(shù)據(jù)抓取與分析研究[J].數(shù)字技術(shù)與應(yīng)用,2017(9):35-36.

        [4] RICHARD LAWSON.用python寫網(wǎng)絡(luò)爬蟲 [M].北京:人民郵電出版社,2016.

        【通聯(lián)編輯:梁書】

        猜你喜歡
        解析器爬蟲網(wǎng)頁
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        基于多解析器的域名隱私保護(hù)機(jī)制
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
        如何防御DNS陷阱?常用3種DNS欺騙手法
        基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計(jì)
        電子制作(2018年10期)2018-08-04 03:24:38
        利用爬蟲技術(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
        基于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
        人妻聚色窝窝人体www一区| 天堂影院久久精品国产午夜18禁| 海外华人在线免费观看| 精品九九人人做人人爱| 伊人蕉久中文字幕无码专区| 国产日本在线视频| 国产影片免费一级内射| 一 级做人爱全视频在线看| 毛片24种姿势无遮无拦| 不卡国产视频| 在线观看一区二区三区国产| 国产成人无码a区在线观看导航| 久久综合久久鬼色| 毛片在线啊啊| 亚洲24小时免费视频| 亚洲性久久久影院| 久久人妻公开中文字幕| 国产三级在线观看性色av | 国产精品日韩经典中文字幕| 欧美丰满熟妇xxxx性| 日本高清不卡二区| 中文字幕被公侵犯的丰满人妻| 成年美女黄网站色大免费视频| 国产丝袜无码一区二区三区视频| 亚洲精品国产国语| 亚洲一区二区三区四区精品| (无码视频)在线观看| 亚洲av成人无码网天堂| 亚洲精品高清av在线播放| 国产av一级黄一区二区三区| 国产精品久久久久影院| 99久久综合九九亚洲| 色噜噜亚洲精品中文字幕| 国产亚洲成av人片在线观黄桃| 亚洲另类激情综合偷自拍图| 一区二区三区岛国av毛片| 日本精品一区二区高清| 日韩在线一区二区三区免费视频| 国产亚洲精品性爱视频| 国产精品国产三级国产专区不| 日韩欧美亚洲综合久久影院ds|