【发布时间】:2011-02-07 17:35:29
【问题描述】:
这是我想要完成的:
- 使用 python mechanize 我打开一个站点
- 如果内容与我的正则表达式不匹配,我会打开另一个网站
- 我使用另一个正则表达式执行搜索
以及提取的代码:
m = re.search('<td>(?P<alt>\d+)', response.read())
...
m = re.search('<td>(?P<alt>\w+)', response.read())
print m.group('alt')
我明白了:
AttributeError: 'NoneType' object has no attribute 'group'
如果我取消注释第二次搜索一切都很好。我不明白这种行为。
这样的错误将我重定向到 this stackoverflow issue 和 this - 但无济于事 - 这些都没有解决我的问题。
我不关心这里的效率所以我不使用compile。
【问题讨论】:
-
每个 response.read() 的未过滤结果是什么?我敢打赌,第二次阅读不会返回您期望的结果。
-
您能否通过调用 re.search 两次来添加更多有关您尝试执行的操作的详细信息?当前的示例代码没有意义。
-
@kramthegram - 谢谢!你是对的。这不是正则表达式问题。 @shang - 因为 response.read() 在这两行之间发生了变化 - 见我问题的第二点。