【廖雪峰】python爬虫------------学习记录day05(正则re)

正则表达式re模块

1、贪婪模式、非贪婪模式

import re

# 贪婪模式  从开头匹配到结尾 默认
# 非贪婪
one = 'mdfsdsfffdsn12345656n'
two = "a\d"
pattern = re.compile('a\b')
# pattern = re.compile('m(.*?)n')

result = pattern.findall(two)

print(result)

2、 . 除了 换行符号\n 之外的 匹配

import re

# . 除了 换行符号\n 之外的 匹配
one = """
    msfdsdffdsdfsn
    1234567778888N
"""
#re.S | re.I  换行 大写
pattern = re.compile('m(.*)n', re.S | re.I)
result = pattern.findall(one)
print(result)

3、match、search、findall、sub、split

import re

one = 'abc 123'
patter = re.compile('\d+')
# match 从头匹配 匹配一次

result = patter.match(one)

# search 从任意位置 , 匹配一次
result = patter.search(one)

# findall  查找符合正则的 内容 -- list
result = patter.findall(one)

# sub  替换字符串
result = patter.sub('#',one)

# split  拆分
patter = re.compile(' ')
result = patter.split(one)

4、拆分字符串

import re

one = 'asdsfsgsh'
#标准时 s 拆分
pattern = re.compile('s')
result = pattern.split(one)
print(result)

5、匹配中文

import re

two = '<a href="http://news.baidu.com" target="_blank" class="mnav c-font-normal c-color-t">新闻新闻</a>'
#python中 匹配中文 Unicode范围 4E00-9FA5
pattern = re.compile('[\u4E00-\u9FA5]+')
result = pattern.findall(two)

6、#正则解析数据

#每个新闻的title url

import re
import requests

url = 'http://news.baidu.com/'
headers = {
    "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
}
data = requests.get(url,headers=headers).content.decode()

#正则解析数据
#每个新闻的title url
#<a href="http://news.cyol.com/gb/live/content_5J0EGfwK811.html" target="_blank" class="a3" mon="ct=1&amp;a=1&amp;c=top&amp;pn=2">“学党史 强信念 跟党走”学习教育主题直播</a>
pattern = re.compile('<a href="(.*)">(.*)</a>')
result = pattern.findall(data)
print(result)

# with open('news01.html','w',encoding='utf-8') as f:
#     f.write(data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值