Python 在HTML页面上查找所有IP

Python 在HTML页面上查找所有IP,python,regex,screen-scraping,extract,Python,Regex,Screen Scraping,Extract,我想用python获得一个HTML页面,然后打印出其中的所有IP。 我将IP定义如下: xxx:y 其中: x=介于0和256之间的数字。 y=小于7位的数字 谢谢。基本方法是: 用于下载页面内容 使用提取类似IPv4的地址 根据每个八位字节上的数字约束验证每个匹配 打印出匹配项的列表 请更清楚地说明您遇到问题的具体零件,并提供证据证明您迄今为止尝试过的零件。基本方法是: 用于下载页面内容 使用提取类似IPv4的地址 根据每个八位字节上的数字约束验证每个匹配 打印出匹配项的列表 请更清楚

我想用python获得一个HTML页面,然后打印出其中的所有IP。 我将IP定义如下:

xxxy

其中: x=介于0和256之间的数字。 y=小于7位的数字


谢谢。

基本方法是:

  • 用于下载页面内容
  • 使用提取类似IPv4的地址
  • 根据每个八位字节上的数字约束验证每个匹配
  • 打印出匹配项的列表

请更清楚地说明您遇到问题的具体零件,并提供证据证明您迄今为止尝试过的零件。

基本方法是:

  • 用于下载页面内容
  • 使用提取类似IPv4的地址
  • 根据每个八位字节上的数字约束验证每个匹配
  • 打印出匹配项的列表
请更清楚地说明您使用的具体零件,并提供证据说明您迄今为止尝试过的零件。

尝试:

re.compile("\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d:\d+").findall(urllib2.urlopen(url).read())
尝试:


对。我唯一不能做的就是正则表达式das 9分钟前如果有人告诉我,我会没事的8分钟前

下面是一个完整的示例:

import re, urllib2

f = urllib2.urlopen("http://www.samair.ru/proxy/ip-address-01.htm")
junk = f.read()

ip = re.compile(r"\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?):\d{1,6}\b")
print ip.findall(junk)

# ['114.30.47.10:80', '118.228.148.83:80', '119.70.40.101:8080', '12.47.164.114:8888', '121.
# 17.161.114:3128', '122.152.183.103:80', '122.224.171.91:3128', '123.234.32.27:8080', '124.
# 107.85.115:80', '124.247.222.66:6588', '125.76.228.201:808', '128.112.139.75:3128', '128.2
# 08.004.197:3128', '128.233.252.11:3124', '128.233.252.12:3124']

对。我唯一不能做的就是正则表达式das 9分钟前如果有人告诉我,我会没事的8分钟前

下面是一个完整的示例:

import re, urllib2

f = urllib2.urlopen("http://www.samair.ru/proxy/ip-address-01.htm")
junk = f.read()

ip = re.compile(r"\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?):\d{1,6}\b")
print ip.findall(junk)

# ['114.30.47.10:80', '118.228.148.83:80', '119.70.40.101:8080', '12.47.164.114:8888', '121.
# 17.161.114:3128', '122.152.183.103:80', '122.224.171.91:3128', '123.234.32.27:8080', '124.
# 107.85.115:80', '124.247.222.66:6588', '125.76.228.201:808', '128.112.139.75:3128', '128.2
# 08.004.197:3128', '128.233.252.11:3124', '128.233.252.12:3124']

不是要把这变成一个谁的更好的regex作者战争但是

(\d{1,3}\.){3}\d{1,3}\:\d{1,6}

不是要把这变成一个谁的更好的regex作者战争但是

(\d{1,3}\.){3}\d{1,3}\:\d{1,6}

\b(?:                # A.B.C in A.B.C.D:port
    (?:
       25[0-5]
    |  2[0-4][0-9]
    |  1[0-9][0-9]
    |  [1-9]?[0-9]
    )\.
  ){3}
  (?:                # D in A.B.C.D:port
    25[0-5]
  | 2[0-4][0-9]
  | 1[0-9][0-9]
  | [1-9]?[0-9]
  )
  :[1-9]\d{0,5}     # port number any number in (0,999999]
\b

\b(?:                # A.B.C in A.B.C.D:port
    (?:
       25[0-5]
    |  2[0-4][0-9]
    |  1[0-9][0-9]
    |  [1-9]?[0-9]
    )\.
  ){3}
  (?:                # D in A.B.C.D:port
    25[0-5]
  | 2[0-4][0-9]
  | 1[0-9][0-9]
  | [1-9]?[0-9]
  )
  :[1-9]\d{0,5}     # port number any number in (0,999999]
\b


你可能想澄清一下。不清楚你想做什么。当你说“用python获取一个HTML页面,然后打印出其中的所有IP地址”时,你是什么意思?我相信他的意思是从HTML中提取IP地址。我想下载一个网页,并按照定义的格式x.x.x:y打印出所有字符串。请澄清您的问题,因为我不明白您对我的问题所不了解的内容。您的意思是从HTML页面解析出所有URL,并创建这些URL引用的IP地址列表(即URL来自的域)或者你是在暗示这些特定的HTML页面将明确列出它们的IP地址?你可能想澄清一下这一点。不清楚你想做什么。当你说“用python获取一个HTML页面,然后打印出其中的所有IP地址”时,你是什么意思?我相信他的意思是从HTML中提取IP地址。我想下载一个网页,并按照定义的格式x.x.x:y打印出所有字符串。请澄清您的问题,因为我不明白您对我的问题所不了解的内容。您的意思是从HTML页面解析出所有URL,并创建这些URL引用的IP地址列表(即URL来自的域)或者你是在暗示这些特定的HTML页面会在上面明确列出IP地址?对。我唯一不能做的就是正则表达式。我唯一做不到的部分是正则表达式。In[9]:ip.search(“255x255x255x255:12”)Out[9]:@llimllib:>>>ip.match(“255x255x255x255:12”)>>>In[9]:ip.search(“255x255x255:12”)Out[9]:@llimllib:>>ip.match(“255x255x255x255:12”)>>>不能有带零的IP?需要与某些东西耦合以约束可接受的八位字节值。“\d{1,3}”仅表示1-3个数字。一对夫妇已经提交了更多“正确”的正则表达式,因此这是一个没有实际意义的问题。IP不能为零?需要与一些东西耦合以约束可接受的八位字节值。“\d{1,3}”只是指1-3个数字。一对夫妇已经提交了更多“正确”的正则表达式,因此这是一个没有实际意义的问题。需要结合一些东西来约束可接受的八位组值。需要结合一些东西来约束可接受的八位组值。