首页 > 代码库 > python学习之----BeautifulSoup小示例

python学习之----BeautifulSoup小示例

BeautifulSoup 库最常用的对象恰好就是BeautifulSoup 对象。

from urllib.request import urlopen

from bs4 import BeautifulSoup

html = urlopen("http://www.pythonscraping.com/pages/page1.html")

bsObj = BeautifulSoup(html.read())

print(bsObj.h1)

 

bsObj.tagname只能获取页面中的第一个指定的标签tagname

输出结果是:

<h1>An Interesting Title</h1>

和前面例子一样,我们导入urlopen,然后调用html.read() 获取网页的HTML 内容。这

样就可以把HTML 内容传到BeautifulSoup 对象,转换成下面的结构:

? html → <html><head>...</head><body>...</body></html>

— head → <head><title>A Useful Page<title></head>

— title → <title>A Useful Page</title>

— body → <body><h1>An Int...</h1><div>Lorem ip...</div></body>

— h1 → <h1>An Interesting Title</h1>

— div → <div>Lorem Ipsum dolor...</div>

可以看出,我们从网页中提取的<h1> 标签被嵌在BeautifulSoup 对象bsObj 结构的第二层

(html → body → h1)。但是,当我们从对象里提取h1 标签的时候,可以直接调用它:

bsObj.h1

其实,下面的所有函数调用都可以产生同样的结果:

bsObj.html.body.h1

bsObj.body.h1

bsObj.html.h1

希望这个例子可以向你展示BeautifulSoup 库的强大与简单。其实,任何HTML(或

XML)文件的任意节点信息都可以被提取出来,只要目标信息的旁边或附近有标记就行。

 

python学习之----BeautifulSoup小示例