PYTHON爬虫--02--re | bs4 | pyquery

一、re模块

1、综述

(1)示例

result = re.match(parttern,string,model)
result.group(1)

(2)说明: 

  • 泛匹配(.*)能减少正则表达式的长度,使用时用非贪婪模式(.*?)
  • 用括号得到匹配目标 result.group(),特殊符号 \ 转义
  • (.* )默认不能匹配换行符,指定使用re.S匹配模式后可以匹配换行符

2、几个方法

  • re.match( ):从头匹配,开头不匹配则返回none
  • re.search( ):从字符串中寻找,返回找到的第一个结果
  • re.findall( ):返回所有找的结果
  • re.sub(pattern,' ',string):替换匹配的字符串
  • pattern = re.compile(regx):便于正则串的复用

 

二、beautifulSoup

1、标签选择器

(1)常用标签选择器

  • soup.head.title
  • soup.head.name:获取标签的名称
  • soup.a['href']:获取标签的相应属性
  • soup.a.string:获取标签的文本

(2)节点选取

   1、获取子孙节点:

  • soup.p.contents:获取子节点,返回一个列表类型
  • soup.p.children:获取子节点,返回一个迭代器类型
  • soup.p.desendants:获取子孙节点,返回一个迭代器类型

   2、获取父节点和祖先节点:

  • soup.p.parent : 获取父节点
  • soup.p.parents : 获取祖先节点

   3、获取兄弟结点:

  • soup.p.next_siblings
  • soup.p.previous_siblings

2、标准选择器

(1)标签选择:

  • soup.find_all('ul')
  • soup.find('ul')

(2)属性选择:

  • soup.find(attrs={字典})
  • soup.find(id='  ')
  • soup.find(class_='   ')

(3)text匹配选择:

  • soup.find(text='   '):返回的是文本而不是标签

(4)其他选择:

  • find_parents()       find_parent()  等

3、css选择器

  • soup.select('css选择器'):返回的也是 tag
  • soup.select('css选择器')['id']:获取属性
  • soup.select('css选择器').get_text():获取文本

4、BS总结

  • 推荐使用lxml解析库,必要时使用html.parser
  • 标签选择功能弱,但是速度快
  • 建议使用find()和find_all()方法查询一个或者多个结果
  • css选择器很好用
  • 获取属性和文本非常常用

 

三、pyquery(类似于jquery)

1、初始化

  • 字符串初始化:pq(html)
  • url初始化:pq(url="  ")
  • 文件初始化:pq(filename="  ")

2、基本css选择器

  • 查找子元素:doc.find()/children()
  • 查找父元素:doc.parents()/parent()
  • 查找兄弟元素:doc.siblings()
  • 多元素的遍历:doc.items()返回一个生成器
  • 获取属性:doc.attr.href
  • 获取文本:text()
  • 获取html:html()

3、dom操作

  • addClass / removeClass
  • attr / css
  • remove

4、伪类选择器:参考css的伪类选择器

  • p:first-child / p:last-child
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值