Python Spider:Beautifulsoup基本使用

14 篇文章 0 订阅
1 篇文章 0 订阅

Beautifulsoup:解析库
安装:pip3 install beautifulsoup4(第四版本)
用法:
from bs4 import Beautifulsoup
创建解析对象:
soup = Beautifulsoup(markup,解析器)
Markup:目标字符串
解析器:
支持:python标准库解析器:html.parser
lxml HTML解析器:‘lxml’
lxml XML解析器:‘xml’
html5lib解析器:‘html5lib’
如:soup = Beautifulsoup(html,‘xml’)
soup.prettify()格式化目标字符串,容错补全
常用选择器:
标签选择器:
soup.标签名(获取目标字符串第一次出现的标签)
soup.title:title标签
soup.title.name:获取标签名称,返回值为title
soup.title.attrs[‘属性名’]:获取属性值
soup.title[‘属性名’]:获取属性值
soup.title.string:获取标签的文本内容
嵌套选择:
soup.head.title:获取head标签中的title标签对象
子节点和子孙节点的选择:
soup.title.contents:获取自己点列表
soup.title.children:获取子节点,是一个迭代器
for i, child in enumerate(soup.title.children)
soup.title.descendants:获取所有的子孙节点,返回一个迭代器
父子点和祖先节点:
soup.title.parent:获取父节点
soup.title.parents:获取所有的祖先节点
兄弟节点:
soup.title.next_siblings:下一个兄弟节点
soup.title.previous_siblings:上一个兄弟节点
标准选择器:
soup = Beaufulsoup(html,‘xml’)
find_all()
soup.find_all(‘标签名’):获取所有满足条件的列表
soup.find_all(attrs={‘属性名’:‘属性值’})
如:soup.find_all(attrs={‘id’:‘list’}
或者直接:
soup.find_all(id=‘list’)
soup.find_all(_class=‘xxx’):因为class是python中的关键字,所以加下划线避免冲突
soup.find_all(text=‘xxx’):匹配文本内容为xx的标签
find():用法一样,只返回匹配结果的第一个元素
CSS选择器:层层选择
soup.select(‘选择器’)
class选择器:.xxx
soup.select(’.panel .panel-heading’) class属性为panel 里的panel-heading
id:选择器:#xxx
soup.select(’#list .element’) id为list的节点中的class值为element的标签
标签选择器:
soup.select(‘ul li’):ul标签中的li标签
获取标签属性和内容:
通过以上选择器获取的标签后:
标签[‘属性名’] :获取属性值
标签.get_text():获取标签的文本内容
推荐使用lxml解析器
标签选择器筛选功能弱但速度快

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值