Python 爬虫_正则表达式
Posted 你是不夜星空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 爬虫_正则表达式相关的知识,希望对你有一定的参考价值。
用来对字符串操作的一种逻辑方式, 对字符串的一种过滤逻辑。
表达式全集: http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
1.
1. re.match ==>尝试从字符串的起始位置匹配一个模式,如果第一个字符不嫩匹配,则不能正常匹配
re.match(pattern,sring,flags=0)
2. 匹配目标:
import re content=‘Hello 1234567 world_this is a regex demo‘ result=re.match(‘^Hellos(d+)sworld.*demo$‘,content) #正则表达式 print(result.group(1)) #输出第一个括号的内容 print(result.span()) #输出输出字符串的数量
3. 贪婪匹配:
import re content=‘Hello 1234567 world_this is a regex demo‘ result=re.match(‘^He.*(d+)sworld.*demo$‘,content) print(result.group(1)) #只能输出7
#非贪婪匹配 import re content=‘Hello 1234567 world_this is a regex demo‘ result=re.match(‘^He.*?(d+).*demo$‘,content) print(result.group(1)) #输出1234567
#匹配模式: import re content=‘‘‘Hello 1234567 world_this is a regex demo ‘‘‘ result=re.match(‘^He.*?(d+).*?demo$‘,content,re.s) #re.s 是匹配换行符的 print(result.group(1)) #输出1234567
4. 转义: 特殊字符需要转义
import re content=‘price is $500‘ result=re.match(‘price is $500‘,content) #转义之后才能匹配
5. re.search: 扫描字符串,返回第一个匹配的字符,能用search就不用match
import re content=‘Hello 1234567 world_this is a regex demo‘ result=re.search(‘Hellos(d+)sworld.*demo$‘,content) #输出全部字符串
6. re.findall
results=re.findall(‘正则表达式‘,html,re.S) for result in results: print(result) print(result[1],result[2]...)
7. re.sub: 字符串替换
import re content=‘Hello 1234567 world_this is a regex demo extra stings‘ content=re.sub(‘d+‘,‘‘,content)
8. re.compile: 把字符串编译成正则表达式
import re content=‘‘‘Hello 1234567 world_this is a regex demo ‘‘‘ result=re.compile(‘hello.*demo‘,re.s) #re.s 是匹配换行符的 result=re.match(pattern,content)
#实战练习: import requests import re content=requests.get(‘http://book.doubancom/‘).text patten=re.compile(‘<li,*cover.*?href="(.*?)".*?title="(.*?)".*?more-meta.*?author>(.*?)</span>.*?year>(.*?)</span>.*?</li>‘,re.S) results=re.findall(pattern.content) #print (results) for result in results url, name,author,date=result author=re.sub(‘s‘,‘‘,author) date=re.sub(‘s‘,‘‘,date) print(url,name,author,date)
以上是关于Python 爬虫_正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
python 爬虫004-使用urllib2与正则表达式扒取糗事百科新鲜页首页帖子