我正在尝试匹配来自html页面的<span>
标记中的端口号:
<span class="tbBottomLine" style="width:50px;">
8080
</span>
<span class = "tbBottomLine" style = "width: 50px;">
80
</ span>
<span class = "tbBottomLine" style = "width: 50px;">
3124
</ span>
<span class = "tbBottomLine" style = "width: 50px;">
1142
</ span>
脚本:
import urllib2
import re
h = urllib2.urlopen('http://www.proxy360.cn/Region/Brazil')
html = h.read()
parser_port = '<span.*>\s*([0-9]){2,}\s*</span>'
p = re.compile(parser_port)
list_port = p.findall(html)
print list_port
但是我得到了这个输出:
['8', '8', '0', '0', '0', '8', '8', '0', '0', '8', '8', '8', '8', '8', '8', '8', '8', '0']
我需要它来匹配8080
例如。
答案 0 :(得分:0)
如果你想要从页面上拉出端口。
parser_port = '<span.*>\s*([0-9]{2,})+\s*</span>'
你想要一个或多个长度至少为2的字符(+号)({2,}。但是仍然不清楚用例是什么。
答案 1 :(得分:0)
您正在重复群组focusTarget: 'category',
。用最后一个值覆盖。
相反,重复组内的子模式:
([0-9]){2,}
<强>代码强>
<span[^>]*>\s*([0-9]{2,})\s*</\s*span>