python 正则表达式

食人魔魔法师 发布于 2017/03/24 11:14
阅读 132
收藏 0

我在爬取中关村手机新品时 ,要取价格和上市时间,源码:

<div class="price-box">
  <span class="price price-normal"><b class="price-sign">¥</b><b class="price-type">498</b></span><span class="price-attr">[16GB行货]</span>
  <span class="date">2017-03-17</span>
 

</div>

但是有的产品没有上市时间,源码:

<div class="price-box">
  <span class="price price-upc"><b class="price-type">即将上市</b></span>
 

</div>

 

 

我用正则

class="price-type">(.*?)</b>.*?class="date">(.*?)</span>'

只能匹配到有带class=“date”的产品,我的需求是如果没有到<span class="date">就默认为空 求大神!

加载中
0
Lin_R
Lin_R
#coding: utf8
import re
a='''
<div class="price-box">
 	<span class="price price-normal"><b class="price-sign">¥</b><b class="price-type">498</b></span><span class="price-attr">[16GB行货]</span>
 	<span class="date">2017-03-17</span>

</div>
<div class="price-box">
 	<span class="price price-upc"><b class="price-type">即将上市</b></span>

</div>

 '''

print re.findall(r'price-type">(.+?)</b>.*?([\d-]*)</span>\n\n</div>', a, re.S)
输出结果:
[('498', '2017-03-17'), ('\xe5\x8d\xb3\xe5\xb0\x86\xe4\xb8\x8a\xe5\xb8\x82', '')]

 

食人魔魔法师
食人魔魔法师
python 3 和2 不一样? 还是没有
Lin_R
Lin_R
你的源码看下
食人魔魔法师
食人魔魔法师
打印出来没有数据
0
食人魔魔法师
食人魔魔法师
食人魔魔法师
回复 @Lin_R : 已经解决了 谢谢了
Lin_R
Lin_R
你没艾特我, 我都不知道你回了.. 你的正则怎么跟我的不像啊? 我用py3也是可以的
返回顶部
顶部