Python爬虫基础+正则表达式

爬取一个网站:

import urllib.request
res=urllib.request.urlopen('https://www.csdn.net/')
print(res.read())

爬虫正则表达式:

1.提取连续的四个数字 /d/d/d/d

import re
m=re.findall('\d\d\d\d','123adfa56sne6742')
print(m)

结果:[‘6742’]

2.已知提取的头部和尾部,提取中间部分,就是加括号(.*)

m=re.findall(r'<div>(.*)</div>','<div>hello</div>')

结果:[‘hello’]

3.有多个<>时,用上述方法只能识别第一个和最后一个,结果如下图:
在这里插入图片描述

m=re.findall(r'<div>(.*)</div>','<div>hello</div><div>world</div>')

这种情况下,括号()中间要加?

m=re.findall(r'<div>(.*?)</div>','<div>hello</div><div>world</div>')

结果就是[‘hello’, ‘world’]

4.匹配除了换行符之外的字符

m=re.findall('.','sd\nefwe')

结果: [‘s’, ‘d’, ‘e’, ‘f’, ‘w’, ‘e’]

5.匹配[ ]中括号中任意一个字符都可以

m=re.findall('a[bcd]e','jabesadebacesse')

结果:[‘abe’, ‘ade’, ‘ace’]

6.提取数学是\d,非数字的字符是\D

7.提取空格\s,非空格的字符是\S

m=re.findall('\s',' vssf\t s')

结果:[’ ', ‘\t’, ’ ']

8.提取字母和数字\w,非字母和数字\W

m=re.findall('\w','1d*31&%4')

结果:[‘1’, ‘d’, ‘3’, ‘1’, ‘4’]

9.提取字符串 abs

m=re.findall('abs','absdgregabssff')

结果:[‘abs’, ‘abs’]

若只提取开头,在匹配的字符前加 ^

m=re.findall('^abs','absdgregabssff')

结果:[‘abs’]

10.匹配不区分别大小写,加re.I

m=re.findall('abc','abcABCdf',re.I)

结果:[‘abc’, ‘ABC’]

11.匹配0个或1个(后面跟0个或1个某字符)

m=re.findall('ab?','abbbabbba')

结果:[‘ab’, ‘ab’, ‘a’]

12.匹配至少1个

m=re.findall('ab+','abbbabbba')

结果:[‘abbb’, ‘abbb’]

13.匹配至少0个

m=re.findall('ab*','abbbabbba')

结果:[‘abbb’, ‘abbb’, ‘a’]

14.匹配com结尾的邮箱

m=re.findall('\w+@\w+\.com','1115981109@qq.com;1115981109@qq.org')

结果:[‘1115981109@qq.com’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值