2010-07-05 19 views
2
转向到可变DIC

我怎样才能做到这一点:获取IP的外部列表,并在Python

进入这个网站(http://www.samair.ru/proxy/time-01.htm)上,并获取IP地址的列表,并把它转化为一个字典变量?

白衣这些代码特别,我只可以得到网站的第一个IP

ip = urllib.urlopen('http://www.samair.ru/proxy/time-01.htm').read() 
clientIp = re.search("(\d+\.\d+\.\d+\.\d+)", ip).group() 

print clientIp 

回答

1

使用findall,而不是search

ip = urllib.urlopen('http://www.samair.ru/proxy/time-01.htm').read() 
clientIp = re.findall(r"\d+\.\d+\.\d+\.\d+", ip) 

注“原始”的字符串r"…"防止解释作为转义字符的反斜杠。

这给你一个包含IP地址的字符串列表。要将它变成字典,您需要键值对。

+0

我该如何与端口做呢?我试图向端口添加':\ d + \',但它将'ip'变量转换为字符串 – Shady 2010-07-05 08:59:01

+0

页面使用JavaScript来隐藏端口号,您必须首先“解码”它。例如,其中一行为'​​75.21.47.2 ',常量为't', z'定义某处。这非常困难,不能通过简单的正则表达式搜索来完成;请把它作为一个新问题发布。 – Philipp 2010-07-05 09:04:12