【Python学习之旅】---BeautifulSoup模块

 1 from bs4 import BeautifulSoup
 2 import re
 3 html='''
 4 <html>
 5 <body>
 6 <div>
 7     <ul>
 8         <li class="item-1"><a href="link1.html">张三</a></li>
 9         <li class="item-2"><a href="link2.html">李四</a></li>
10         <li class="item-2"><a href="link3.html">王五</a>
11     </li></ul>
12 </div>
13 '''
14 #解析字符窜形式的html
15 soup=BeautifulSoup(html,"lxml")
16 
17 #解析本地的html文档
18 soup2=BeautifulSoup(open("123.html"))
19 
20 #格式化输出soup对象
21 print(soup.prettify())
22 
23 #根据标签名获取标签信息 soup.标签名
24 print(soup.li)
25 #获取标签内容
26 print(soup.li.string)
27 #获取标签民
28 print(soup.li.name)
29 #获取标签内所有属性或属性值
30 print(soup.li.attrs["class"])
31 #获取直接子标签,结果是一个列表
32 print(soup.ul.contents)
33 #获取直接字标签,结果是一个生成器,不是单独打印ul中的每一个标签
34 for i in soup.ul.children:
35     print(i)
36 #获取所有字标签,结果是一个生成器,会单独打印每一个标签
37 for i in soup.ul.descendants:
38     print(i)
39 
40 
41 #搜索文档树
42 #根据字符窜查找所有的li标签,返回一个结果集,装的是标签对象
43 data=soup.find_all("li")
44 for i in data:
45     print(i.string)
46 
47 #根据正则表达式查找标签
48 data=soup.find_all(re.compile("^a"))
49 for i in data:
50     print(i.string)
51 
52 
53 #根据属性查找标签
54 data=soup.find_all(href="link2.html")
55 for i in data:
56     print(i)
57 
58 
59 #根据标签内容获取标签内容
60 data=soup.find_all(text=re.compile(""))
61 print(data[0])
原文地址:https://www.cnblogs.com/chenyuxia/p/12535528.html