999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

beautifulsoup庫在網絡爬蟲中的使用技巧及應用

2019-12-10 09:48:22沈承放莫達隆
電腦知識與技術 2019年28期
關鍵詞:信息方法

沈承放 莫達隆

摘要:beautifulsoup庫是一個優秀的python第三方庫,主要用于HTML或XML數據的解析。介紹了beautifulsoup庫在python中的地位和作用,分析beautifulsoup庫支持的4種解析器的使用,以及BeautifulSoup類的5種基本元素和3種節點信息的查找和獲取,總結beautifulsoup庫的9種目標數據的提取方法。最后通過實際案例應用指出了beautifulsoup庫在解析HTML或XML數據方面簡潔和強大的優秀表現。

關鍵詞: python;beautifulsoup庫;HTML;XML

中圖分類號:TP311.1? ? ? ?文獻標識碼: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是一種容易上手、易讀性強、免費的計算機程序設計語言,廣泛應用于文本處理、網絡編程和多媒體應用等多種領域,如今已經成為世界上最受歡迎的程序設計語言之一。它擁有強大且豐富的庫,這使得它更加簡潔、更易操作。其中beautifulsoup庫是一個優秀的python第三方庫,主要用于HTML或XML數據的解析,使其更具結構化和格式化,并且可以從解析后的HTML或XML數據中提取有用信息。相較于其他解析庫,beautifulsoup庫更加簡潔、高效、功能強大,它支持多種解析器,包括python自帶的解析器“html.parser”,以及第三方的lxml和html5lib等。它不僅可以解析HTML或XML數據,也可以對解析后的數據進行處理以及輸出。因此在使用python解析HTML或XML數據時,beautifulsoup庫已經成為最受歡迎的方法之一。

2 Beautifulsoup庫的使用技巧

下面介紹用于網頁設計的HTML和XML兩種標記語言,以及 beautifulsoup庫在解析HTML和XML數據方面的使用技巧。

2.1 HTML和XML

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

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

2.2 beautifulsoup庫

beautifulsoup庫是一個優秀的python第三方庫,主要用于HTML或XML格式數據的解析,使其更具結構化和格式化,并且可以從解析后的HTML或XML數據中查找、提取和修改目標信息,因此也被廣泛應用于網絡爬蟲。通過在cmd命令行里執行“pip install beautifulsoup4”的方式進行安裝,這里的beautifulsoup4是指第4版的beautifulsoup庫。由于在解析HTML或XML數據時,主要用到的是beautifulsoup庫中的besutifulSoup類,因此其調用方式為“from bs4 import BesutifulSoup”,其中“bs4”是beautifulsoup4庫的簡寫,“BesutifulSoup”是beautifulsoup庫的一個類型。BesutifulSoup類可以將HTML或XML數據轉化為一個besutifulSoup類型,從而實現數據的解析。

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

2.3 beautifulsoup庫的解析器

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

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

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

2.4 prettify()方法

prettify()方法是beautifulsoup庫的一個可以將HTML和XML數據格式化輸出的方法,它可以自動為每一個標簽和字符串添加換行符,并將其按照縮進規則分行顯示,使 HTML和XML數據更加層次化和結構化。

2.5 BeautifulSoup類的基本元素

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

2.6節點的獲取方法

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

2.7 beautifulsoup庫信息獲取方法

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

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

2.7.2 select()方法

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

3 beautifulsoup庫案例應用

以“example.html”HTML文本數據為例,介紹beautifulsoup庫在實際案例應用中的優秀表現。“example.html” HTML文本數據見附錄。

3.1 BeautifulSoup類元素的獲取

首先導入beautifulsoup庫的BeautifulSoup類型,然后采用beautifulsoup庫自有的解析器解析案例中的HTML數據,最后實現標簽、標簽名字、標簽屬性、字符串和注釋的查找和獲取。

3.2 節點的獲取及其遍歷

3.2.1 節點的獲取

3.2.2 節點的遍歷

4 結束語

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

參考文獻:

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

[2] 郭麗蓉.基于Python的網絡爬蟲程序設計[J].電子技術與軟件工程,2017(23):248-249.

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

[4] RICHARD LAWSON.用python寫網絡爬蟲 [M].北京:人民郵電出版社,2016.

【通聯編輯:梁書】

猜你喜歡
信息方法
學習方法
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 日韩福利在线视频| 国产精品自在在线午夜区app| 欧美精品亚洲精品日韩专区va| 永久免费AⅤ无码网站在线观看| 成人综合在线观看| 全午夜免费一级毛片| 蜜芽国产尤物av尤物在线看| 亚国产欧美在线人成| 在线免费观看a视频| 人妻丰满熟妇AV无码区| 国产婬乱a一级毛片多女| 夜夜拍夜夜爽| 久久国产毛片| 91精品国产自产91精品资源| 欧美yw精品日本国产精品| 自慰网址在线观看| 久久综合色视频| 日韩人妻精品一区| 国产69囗曝护士吞精在线视频| 福利国产微拍广场一区视频在线 | 日韩最新中文字幕| 综合社区亚洲熟妇p| 色综合天天操| 亚洲色偷偷偷鲁综合| 99热这里只有精品免费国产| 老司国产精品视频91| 国产欧美自拍视频| 免费激情网址| 国产你懂得| 99热国产这里只有精品9九| 国产亚洲精品在天天在线麻豆 | 国产麻豆va精品视频| 香蕉色综合| 国产产在线精品亚洲aavv| 亚洲最大综合网| 国产日韩精品欧美一区灰| 国产欧美日韩在线在线不卡视频| 日本一区中文字幕最新在线| 精品少妇人妻一区二区| 无码AV日韩一二三区| 91精品国产自产91精品资源| 高清色本在线www| 国产亚洲精品91| 狠狠色噜噜狠狠狠狠色综合久| 中国精品久久| 在线国产你懂的| 国产乱子精品一区二区在线观看| 国产视频自拍一区| 成人免费午间影院在线观看| 欧美高清视频一区二区三区| 亚洲bt欧美bt精品| 99在线视频免费| 一级毛片在线播放免费观看| 亚洲精品中文字幕午夜| 亚洲欧美精品日韩欧美| 一区二区三区国产| 亚洲精品无码在线播放网站| 久久综合AV免费观看| 精品伊人久久久久7777人| 国产美女免费| 538国产视频| 成人免费黄色小视频| 在线毛片网站| 99精品这里只有精品高清视频| jizz国产视频| 综合色区亚洲熟妇在线| 成人午夜视频免费看欧美| 亚洲中文精品人人永久免费| 狠狠色综合网| 91成人免费观看在线观看| 国产成人亚洲毛片| 亚洲乱亚洲乱妇24p| 欧美成人精品欧美一级乱黄| 黄色在线不卡| 香蕉eeww99国产精选播放| 国产又色又爽又黄| 91网站国产| 老司机午夜精品网站在线观看 | 精品国产免费观看| 在线观看免费人成视频色快速| 真实国产乱子伦视频| 日韩精品亚洲人旧成在线|