数据爬虫匹配不到的问题

隔壁的流氓王欧巴 发布于 2016/03/20 22:22
阅读 405
收藏 0
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
d = 0
page = 1
url = 'http://www.stats.gov.cn/tjsj/zxfb/201602/t20160204_1315676.html'
n = 0


request = urllib2.Request(url)
response = urllib2.urlopen(request)
content = response.read().decode('utf-8')
#print content
pattern = re.compile('''font-family: 宋体">(.*?)</span></p>''',re.S)
items = re.findall(pattern,content)
#    a = re.compile('<td width="106" .*?class=.*?>(.*?)</td>',re.S)
#    items2 = re.findall(a,content)
#    print items2
#    print items
#    print type(items2[1])
#    b = re.compile('<td width="84".*? class=.*?>(.*?)</td>',re.S)
#    items3 = re.findall(b,content)
for i in items:
    print i

代码是这样的,我的正则表达式如果换成pattern = re.compile('''<div(.*?)<div''',re.S),那么我就能看到这么一行,

<divclass="TRS_PreAppend"

但是如果我把正则表达式换成pattern = re.compile('''<divclass="TRS_PreAppend"(.*?)<div''',re.S),却匹配不到上面那行内容了,这是为什么呢?

加载中
1
我是李达康
我是李达康
Beautiful Soup 或者其他类似的库
0
Feng_Yu
Feng_Yu
别用正则实现这个需求,很难维护
幻视Vision
幻视Vision
这种练习用正则的经历少不了的.
隔壁的流氓王欧巴
隔壁的流氓王欧巴
咋整。。。求指点
0
幻视Vision
幻视Vision

我试了一下,确实是匹配不到,换个别的关键词试试吧.


幻视Vision
幻视Vision
回复 @隔壁的流氓王欧巴 : 猜可能是有特殊字符导致的.
隔壁的流氓王欧巴
隔壁的流氓王欧巴
div class可以匹配到,不过还有一些要试的。。。
0
g
gx

试试去http://tool.oschina.net/regex

测试下你的正则

g
gx
正则测试工具
隔壁的流氓王欧巴
隔壁的流氓王欧巴
这是啥。。。
0
yak
yak
findall 是只取捕获的结果  如果你要看整个结果 可以写成 
(<div class="TRS_PreAppend"(.*?)<div)
或者 
match=re.search(pattern,content) print match.group()

yak
yak
回复 @幻视Vision :用 (?:.*?)
幻视Vision
幻视Vision
已经有(.*?)了.
隔壁的流氓王欧巴
隔壁的流氓王欧巴
嗯,谢谢
0
幻视Vision
幻视Vision

<div class="TRS_PreAppend" style.*?<\/div

正则测试工具和notepad++里是可以匹配到的.

返回顶部
顶部