Python利用beautifulsoup4库对xml进行解析

前言


Python的beautifulsoup4库是我们在爬虫中经常用到的解析HTML页面的库,同样的它提供了对于xml解析的功能。
我这里利用其提供的对xml解析的功能写了一个示例,如有不足,欢迎指正。


正文


这是我自己写的示例


bookstore.xml


<bookstore>
	<book>
		<category>经典category>
		<title lang="zh">论语title>
		<author>孔子及其弟子author>
		<year>2012year>
		<date>6date>
		<price>38.99price>
	book>
	<book>
		<category>诗歌category>
		<title lang="zh">离骚title>
		<author>屈原author>
		<year>2003year>
		<date>10date>
		<price>20.00price>
	book>
	<book>
		<category>名著category>
		<title lang="zh">西游记title>
		<author>吴承恩author>
		<year>2008year>
		<date>8date>
		<price>60.00price>
	book>
	<book>
		<category>童话category>
		<title lang="zh">格林童话title>
		<author>格林兄弟author>
		<year>2014year>
		<date>9date>
		<price>23.45price>
	book>
	<book>
		<category>经典category>
		<title lang="zh">韩非子title>
		<author>韩非author>
		<year>2015year>
		<date>2date>
		<price>35.50price>
	book>
	<book>
		<category>名著category>
		<title>三国演义title>
		<author>罗贯中author>
		<year>2019year>
		<date>6date>
		<price>65.00price>
	book>
bookstore>

python代码

from bs4 import BeautifulSoup as Bp

with open('bookstore.xml', 'r', encoding='utf-8') as rfile:
    data = rfile.read()

soup = Bp(data, 'xml')

book_data = soup.find_all('book')

for item in book_data:
    print('******Book Information******')
    print('图书类别: ', item.category.text)
    print('书名: ', item.title.text)
    print('作者: ', item.author.text)
    print('出版日期: ', item.year.text + '年' + item.date.text + '月')
    print('价格: ', item.price.text)

执行结果

******Book Information******
图书类别:  经典
书名:  论语
作者:  孔子及其弟子
出版日期:  20126月
价格:  38.99
******Book Information******
图书类别:  诗歌
书名:  离骚
作者:  屈原
出版日期:  200310月
价格:  20.00
******Book Information******
图书类别:  名著
书名:  西游记
作者:  吴承恩
出版日期:  20088月
价格:  60.00
******Book Information******
图书类别:  童话
书名:  格林童话
作者:  格林兄弟
出版日期:  20149月
价格:  23.45
******Book Information******
图书类别:  经典
书名:  韩非子
作者:  韩非
出版日期:  20152月
价格:  35.50
******Book Information******
图书类别:  名著
书名:  三国演义
作者:  罗贯中
出版日期:  20196月
价格:  65.00

你可能感兴趣的:(笔记,python,xml)