beautifulsoup

 1 from bs4 import BeautifulSoup
 2 import re
 3 # 获取需要解析的代码
 4 soup = BeautifulSoup(open('1.html','r',encoding='utf8'),'lxml')
 5 
 6 # 改正前端代码中可能出现的错误
 7 soup.prettify()
 8 
 9 # 遍历文档树
10 # 只找第一个a标签
11 # print(soup.a.text)
12 # 取文本 a.text        取链接地址a.attrs这个方法返回的数据类型为字典
13 
14 # 嵌套 a.tr.td  直接子节点可以用children,父节点用parent 所有子孙节点用descendants 所有的祖先用parents
15 
16 # 搜索文档树
17 # def find_all(self, name=标签名字, attrs={属性}, recursive=True, text=None,
18 #                  limit=None, **kwargs):
19 # 五钟过滤器
20     # 一、字符串    完全匹配
21 # print(soup.find_all(name='div'))
22 # print(soup.find_all(attrs={"class":"icon-title icon-star"}))
23 # print(soup.find_all(text='焦'))
24 
25     # 二、列表      可以同时传入多个过滤条件
26 # print(soup.find_all(name=['a','b','div']))
27 
28     # 三、正则
29 # print(soup.find(name=re.compile('^b')))
30 # print(soup.find(attrs={'class',re.compile('^wbs')}))
31 # print(soup.find_all(text=re.compile('介\s*')))
32 
33     # 四、True
34 # print(soup.find_all(name=True))
35 # print(soup.find_all(attrs=True))
36 # print(soup.find_all(text=True))
37 # print(soup.find_all(name='p',text=True))
38 
39     # 五、方法
40 def shuxing(soup):
41     return soup.has_attr("class") and not soup.has_attr('id')
42 
43 print(soup.find_all(shuxing))
posted @ 2020-01-10 16:29  import*  阅读(267)  评论(0编辑  收藏  举报