04-正则解析+bs4基础爬虫

正则
匹配字符串
正则表达式必备技能:
元字符:(单个字符)
1,普通字符
2, 特殊字符
. 匹配所有文字符号,除了换行
\w 匹配数字,字母,下划线
\d 匹配数字
\W 匹配除了数字,字母,下划线
\D 匹配除了数字
^ 匹配一句话得开头
$ 匹配一句话得结尾
[abc] 字符组 等于 \w
[^abc] 字符组 非字符组 等于 \W
3,量词
用来修饰前面得一个单位的出现次数
* 表示出现0次或者更多次
+ 表示出现一次或者更多次
? 表示出现0次或者1次
{n}表示出现n次 # \d{3} 表示出现3个数字
4 ,贪婪匹配
默认的量词(,+,?)都是尽可能多的匹配内容
5 , 惰性匹配
a.
?x (匹配到a和第一个x就结束)惰性匹配,尽可能少的匹配,回溯算法

import re # 关于处理正则表达式的一个模块

lst = re.findall(r"\d+","哈哈99呵呵88嘿嘿77")
print(lst)  # \d 匹配数字 
#['99', '88', '77']

it = re.finditer(r"\d+","哈哈99呵呵88嘿嘿77")
for item in it:
    print(item.group())
    # 99
    # 88
    # 77

it = re.finditer(r"\d+","1哈哈哈sdasd12123ha4562哈哈哈78922")
# 默认匹配第一个数字
obj = it.__next__()
print(obj.group())
#1
# 正则遍历所有数字
for item in it:
    print (item.group())
# 1
# 12123
# 4562
# 78922

##   match 默认从开头匹配  只能匹配一次
result = re.match(r"\d+","123456哈哈99呵呵88嘿嘿77")
print(result.group())  
# 123456

## search 查找得到第一个结果就返回
result1 = re.search(r"\d+","哈哈123456哈哈99呵呵88嘿嘿77")
print(result1.group()) 
# 123456


obj = re.compile(r"www\.baidu\.com")
it = obj.finditer("www.baidu.com,www.jd.com")
for item in it:
    print(item.group())  
    #  www.baidu.com

##括号括起来的内容是你想要的结果
##(?P <name>)
obj = re.compile(r"www\.(?P<gpc>baidu|jd)\.com")
it = obj.finditer("www.baidu.com,www.jd.com")
for item in it:
    print(item.group("gpc"))   
    # baidu
     #jd

obj = re.compile(r"www\.(baidu|jd)\.com")
it = obj.findall("www.baidu.com,www.jd.com")
print(it)  
# ['baidu', 'jd']

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值