来自网页的复兴线

时间:2018-05-12 19:27:27

标签: python regex python-2.7 urllib

import urllib2
import re

content=urllib2.urlopen("https://ipinfo.io/AS32244")
for line in content:
        ver_regex = re.compile(r"(?:\d{1,3}\.){3}\d{1,3}(?:/\d\d?)?")
        py2_ver = ver_regex.search(line)
        print(py2_ver)

我正在使用python 2.7.5并且我没有在每一行都打印。

搜索拉网站的适当方法是什么?

我查看了BeautifulSoup,但我不认为它适用于我,因为桌子的结构如何。

我知道正则表达式确实有效: provide the HttpInterceptor

2 个答案:

答案 0 :(得分:1)

对我而言,代码可以正常运行,但打印出很多Nones,你不会注意到匹配。毕竟,大多数线路都不匹配。此代码清楚地显示了结果:

    py2_ver = ver_regex.search(line)
    if py2_ver:
        print(py2_ver.group())

答案 1 :(得分:1)

不是解析每一行,而是一次解析整个事物:

import urllib2
import re

content = urllib2.urlopen("https://ipinfo.io/AS32244").read()
ver_regex = re.compile(r"(?:\d{1,3}\.){3}\d{1,3}(?:/\d\d?)?")
print ver_regex.search(content)

这将打印您要查找的号码的第一个匹配项,如果没有,则打印None。如果您想要查找所有可能的事件,请使用findall代替search