Python正则表达式 - 多重搜索

时间:2011-02-07 17:35:30

标签: python regex mechanize

以下是我要完成的事情:

  1. 使用python mechanize我打开一个网站
  2. 如果内容与我的正则表达式不匹配,我会打开另一个网站
  3. 我使用其他正则表达式进行搜索
  4. 提取的代码:

    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 issuethis - 但无济于事 - 这些都没有解决我的问题。

    我不关心效率,所以我不使用compile

1 个答案:

答案 0 :(得分:2)

假设response是一个类似文件的对象,第二次调用read可能会在您之前使用该文件时返回一个空字符串。

data = response.read()
m = re.search('<td>(?P<alt>\d\d*)', data)
m = re.search('<td>(?P<alt>\d\d*)', data)
print m.group('alt')

为什么要多次拨打search