- find_all(name, attrs, recursive, text, **kwargs)
from bs4 import BeautifulSoup import re bs = BeautifulSoup(html,"html.parser") t_list = bs.find_all(re.compile("a")) for item in t_list:print(item)- find()
from bs4 import BeautifulSoup import re # 返回只有一个结果的列表t_list = bs.find_all("title",limit=1) print(t_list) # 返回唯一值t = bs.find("title") print(t) # 如果没有找到,则返回Nonet = bs.find("abc") print(t)- CSS选择器
- 通过标签名查找
print(bs.select('title'))print(bs.select('a'))- 通过类名查找
print(bs.select('.mnav'))- 通过id查找
print(bs.select('#u1'))- 组合查找
print(bs.select('div .bri'))- 属性查找
print(bs.select('a[class="bri"]'))print(bs.select('a[href=https://www.isolves.com/it/cxkf/yy/Python/2021-04-12/"http://tieba.baidu.com"]'))- 直接子标签查找
t_list = bs.select("head > title")print(t_list)- 兄弟节点标签查找
t_list = bs.select(".mnav ~ .bri")print(t_list)- 获取内容
t_list = bs.select("title")print(bs.select('title')[0].get_text())
文章插图
三、pyquery库1.库简介
如果觉得Xpath有些难懂,BeautifulSoup有些难记,那pyquery一定适合你 。pyquery 可让你用 jQuery 的语法来对 xml 进行操作 。这和 jQuery 十分类似 。如果利用 lxml,pyquery 对 xml 和 html 的处理将更快 。这个库不是一个可以和 JAVAScript交互的代码库,它只是非常像 jQuery API 而已 。
2.入门测试
# html为上文BeautifulSoup测试实例from pyquery import PyQuery as pqdoc = pq(html)print(doc('title').text()) # '标题'print(doc('div').filter('.head_wrapper').text()) # '文字1'print(doc('a[name=tj_trnews]').text()) # 同上,只是这种方法支持除了id和class之外的属性筛选print(doc('div').filter('#u1').find('a').text()) # '列表1第1项 列表1第2项'print(doc('div#u1 a').text()) # 简化形式print(doc('div#u1 > a').text()) # 节点之间用>连接也可以,但是加>只能查找子元素,空格子孙元素3.基本方法- 初始化
# 字符串初始化:from pyquery import PyQuery as pqdoc=pq(html)print(doc('li'))# URL初始化doc=pq(url="https://ww.baidu.com")print(doc)a = open('test.html','r',encoding='utf8')doc=pq(a.read())print(doc)- 基本css选择器
# id 为container,class为list下的所有liprint(doc('.head_wrapper #u1 a'))- 查找节点
# .find():查找所有子孙节点items = doc('#u1')print(items.find('a'))# .children():查找子节点items=doc('#u1')print(items.children('.mnav'))# 父节点doc=pq(html)items=doc('.mnav')print(items.parent())print(items.parents())# 兄弟节点doc=pq(html)li=doc('.mnav')print(li.siblings('.bri'))- 遍历
推荐阅读
- python 手把手教你基于搜索引擎实现文章查重
- Python开发者的最强工具PyCharm发布2021最新版
- 大道至简,Python 装饰器 的通俗讲解
- Python爬虫练习:爬取800多所大学学校排名、星级等
- 60行Python代码轻松搞定数据库查询 1秒找到需要的数据
- C++调用python解释器
- 一文看完CDN的发展历程
- 一文带你轻松搞懂事务隔离级别
- 软件测试工具monkeyrunner基于python脚本开发
- python基础——数据结构栈的详解
