发布于2019-08-05 18:22 阅读(1289) 评论(0) 点赞(3) 收藏(2)
1.BeautifulSoup下载
pip install BeautifulSoup4 或者 pip install bs4
pip install lxml #解析器
2.BeautifulSoup支持的解析器
解析器 | 使用方法 | 优势 | 劣势 |
python标准解析库 | BeautifulSoup(markup, "html.parser") |
|
|
lxml HTML 解析器 | BeautifulSoup(markup, "lxml") |
|
|
lxml XML 解析器 |
|
|
|
html5lib | BeautifulSoup(markup, "html5lib") |
|
|
3.BeautifulSoup
常用方法
1 soup = BeautifulSoup(目标字符串,'解析器')
2 #根据标签名查找
3 soup.a #只能查找得到第一个符合要求的节点,是一个对象,bs4自己封装类的对象
4 #获取属性
5 soup.a.attrs #获取得到所有属性和值,是一个字典
6 soup.a.attrs['href'] #获取指定的属性值
7 soup.a['href'] #简写形式
8 #获取文本(如果标签里面还有标签,那么string为空)
9 soup.a.string
10 soup.a.text
11 soup.a.get_text()
12
13 #DOM树操作
14 #子节点
15 #.content返回列表 .children返回生成器
16 #所有子孙节点
17 #.descendants生成器
18 #父节点
19 #.parent
20 #全部父节点
21 #.parents生成器
22 #兄弟节点
23 #.next_silbling .previous_silbling
24 #兄弟节点可以理解为和本节点在统一级的节点
25 #全部兄弟节点
26 #.next_silblings .previous_silblings生成器
27 #前后节点
28 #.next_element .previous_element
29 #与兄弟界节点不同,并不针对与兄弟节点,而是再有节点,部分层次
30
31 #find_all方法
32 #返回的是一个列表,列表里面都是节点对象
33 soup.find_all('a')#找到所有a
34 soup.find_all('a', limit=2)# 提取符合要求的前两个a
35 soup.find_all(['a', 'li'])# 查找得到所有的a和li
36 soup.find_all('a', class_='xxx')#查找得到所有class是xxx的a
37 soup.find_all('li', class_=re.compile(r'^xiao'))#查找所有的class以xiao开头的li标签
官方帮助文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/
作者:浮沉
链接:https://www.pythonheidong.com/blog/article/6216/175fd22a84a0f6b4455d/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!