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','[email protected];[email protected]')

结果:[‘[email protected]’]

猜你喜欢

转载自blog.csdn.net/qq_42740834/article/details/105329719