在文本中识别.onion链接的方法?

时间:2017-06-16 12:13:32

标签: python regex url tor

如何识别文本中的.onion链接,记住它们可以以各种方式出现;

hfajlhfjkdsflkdsja.onion
http://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion

我正在考虑使用正则表达式,但(.*?.onion)将返回URL链接所在的整个段落

3 个答案:

答案 0 :(得分:3)

这样做:(?:https?://)?(?:www)?(\S*?\.onion)\b(添加非捕获组 - 信用:@WiktorStribiżew)

演示:

s = '''hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
https://www.google.com
https://stackoverflow.com'''


for m in re.finditer(r'(?:https?://)?(?:www)?(\S*?\.onion)\b', s, re.M | re.IGNORECASE):
    print(m.group(0))

输出

hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion

答案 1 :(得分:0)

没有正则表达式的方法:

url = 'http://hfajlhfjkdsflkdsja.onion'
split = url.split('.onion')
if len(split)==2 && len(split[1])==0:
   %do something

答案 2 :(得分:0)

快速简便:

([^\s]+\.onion)

匹配从第一个空格开始直到" .onion"。

的所有字符