请教一个 Python 爬虫信息提取问题

2015-01-08 14:54:58 +08:00
 beverse

最近在学写爬虫,聚合程序员的招聘信息,已经聚合了几个网站数据: http://www.codejob.me

但在写智联招聘爬虫的时候,薪酬如'6001-8000'

我的python代码:

s = '6001-8000'
if '-' in s:
    m = re.match(r'(.*?)-(.*?)', s)
    print m.group(1)
    print m.group(2)

为什么m.group(1)成功得到6001,而m.group(2)得到的是空? 想请教一下大家了。

2583 次点击
所在节点    问与答
5 条回复
mhycy
2015-01-08 15:01:56 +08:00
为何不用split?
第二个匹配没匹配到,因为写的是'.*?' *可以为空?最小匹配,所以啥都没匹配到
为何不写成:'([0-9]+)-([0-9]+)'
cloudream
2015-01-08 15:03:19 +08:00
*? 懒惰量词能不匹配就不匹配,所以……
beverse
2015-01-08 15:11:04 +08:00
感谢@mhycy @cloudream

可以 m = re.match(r'(\d+)-(\d+)', s)

或者 s.split('-')
beverse
2015-01-08 15:11:29 +08:00
@cloudream 谢谢提醒!
chizhong
2015-01-08 16:39:24 +08:00
越做越好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160325

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX