我一直在搜索此论坛以查找我的问题,但无法找到合适的解决方案,因此请发布查询。
使用urllib和re模块提取网页的某些部分。感兴趣的还有与这些部分相关的状态。
例如,查看网页的来源:
MY-TEXT#1410完成了子任务PREPARE-WORKSPACE#340418:https://cloud6.foo.bar.com/b/job/PREPARE-WORKSPACE/340418
'> SUCCESS
使用re.compile和re.findall提取此模式之后的文本“https://cloud6.foo”;这匹配所有文本并使用此列表我已经确认它是如此;但是我对这个特定任务的状态感到失望,因为它位于“https://”行之后的行中。
如何在当前场景中的匹配字符串后提取一行?
代码段在这里:
from urllib import urlopen
import re
webpage = urlopen(urllink).read()
buildPhases = re.compile(r'\<a href=\W{1}https\W{3}(.*)')
phaseLists = re.findall(buildPhases, webpage)
for item in phaseLists:
print item
答案 0 :(得分:0)
要在匹配字符串后提取一行,您需要在正则表达式中添加.*\n
例如,如果我们采取:
并应用此模式
MY-TEXT#1410完成了子任务PREPARE-WORKSPACE#340418:https://cloud6.foo.bar.com/b/job/PREPARE-WORKSPACE/340418
'&GT; SUCCESS
r'https.*\n.*\n.*'
结果应该是上面的字符串,而不是:
MY-TEXT #1410 finished subtask PREPARE-WORKSPACE #340418: