03月21, 2019

【爬虫】正则表达式

车里的犯人就是正则表达式想要提取的部分,开的那一枪就是正则表达式,翻转的汽车就是原始的字符串,通过正则表达式提取我们想要的部分。 这节课讲语法真的很难讲,特别是对初学者,所以我直接讲几个经典例子,然后下节课再具体讲正则语法。这节课先不要问为什么这么写正则语法,请记住这是套路。

几个套路

import re

m = re.findall("abc", "aaaaabcccabcc")
print m

m = re.findall("\d", "abc1ab2c")
print m

m = re.findall("\d\d\d\d", "123abc1234abc")
print m

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

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

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

运行结果:

['abc', 'abc']
['1', '2']
['1234']
['hello']
['hello</div><div>world']
['hello', 'world']

提取博客的title

#-*- coding: UTF-8 -*-
import urllib2
import re
response = urllib2.urlopen('http://blog.leanote.com/qq-alan')
html = response.read()
#print html
#m = re.findall(r'title="全文">(.*?)</a>', html)
#m = re.findall(r'title="全文">(.*)</a>', html, re.S)
#m = re.findall(r'title="全文">(.*?)</a>', html)
m = re.findall(r'<div class="title">.*?title="全文">(.*?)</a>', html, re.S)
for t in m:
    print t

本文链接:http://www.yuqiaochuang.com/post/【爬虫】正则表达式.html

-- EOF --

Comments

""