2021-03-19 爬虫(中)

2021-03-19 爬虫(中)

4.2 文档的搜索

##文档的搜索
#1 find_all()
#字符串过滤:会查找和字符串完全匹配的内容,例如abc标签则不会被搜索到
t_list=bs.find_all('a')
print(t_list)

import re
#正则表达式搜索:使用search方法来匹配内容,可以显示所有包含a的
t_list=bs.find_all(re.compile('a'))
print(t_list)

##放入:传入一个(函数)方法,根据函数的要求来搜索
def name_is_exists(tag):
    return tag.has_attr('name')

t_list=bs.find_all(name_is_exists)
print(t_list)

for item in t_list:
    print(item)
    

#2 kwargs 参数

t_list=bs.find_all(id='head')
t_list=bs.find_all(class_=True)
for item in t_list:
    print(item)
    
#3 文本参数
t_list=bs.find_all('hao123')
t_list=bs.find_all(['hao123',"地图","贴吧"])
t_list=bs.find_all(text=re.compile('\d'))#用正则表达式找出所有含数字(特定文本)的字符串,\d表示数字
for item in t_list:
    print(item)


# 4 limit参数
t_list=bs.find_all('a',limit=3)#可以限定搜索到的个数

for item in t_list:
    print(item)


#css选择器
t_list=bs.select('title')#按照标签查找
t_list=bs.select('.mnav')#按照类名查找
t_list=bs.select('#u1') #按id查找
t_list=bs.select("a[class="bri"]")#通过属性查找
t_list=bs.select('head>title') #通过子标签查找

t_list=bs.select(".mnav~.bri")
print(t_list[0].get_text())

for item in t_list:
    print(item)

5、正则表达式

5.1正则表达式的基本规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cr:https://www.bilibili.com/video/BV12E411A7ZQ?p=22

5.2 正则表达式的例子

import re
pat=re.compile('AA')#此处的AA是正则表达式,用来验证其它字符串
m=pat.search('CBA')
print(m)
None
import re
pat=re.compile('AA')#此处的AA是正则表达式,用来验证其它字符串
m=pat.search('ABCAA')
print(m)
<re.Match object; span=(3, 5), match='AA'>
import re
pat=re.compile('AA')#此处的AA是正则表达式,用来验证其它字符串
m=pat.search('ABCAABCAAAA')
print(m)
<re.Match object; span=(3, 5), match='AA'>

search只能找到第一个符合条件的

m=re.search('asd',"basd")#前面的是模板,后面的是被检测的对象
print(m)
<re.Match object; span=(1, 4), match='asd'>
print(re.findall('a',"abcba"))#前面的是模板,后面的是被检测的对象
['a', 'a']
print(re.sub('a','A','abcda'))#在第三个字符串查找,用A替换a
AbcdA

建议加r防止被转义

明天学习正则提取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值