Files
Cerberus/core/regex.py
2019-12-21 23:46:34 +01:00

97 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import re
import requests
from data import config
from core.requester import requester
"""
file:///
dict://
sftp://
ldap://
tftp://
"""
Espace_eliminate = re.compile(r"\s+")
IP_REGEX = re.compile(r"(\d{1,3}\.){3}\d{1,3}?")
# URL_REGEX1 = re.compile(r"((http|https|ftp)|\s)://.+\.sina(\.com|\.cn).*\=.+?\" \b")
SEPARATE_PARAMS = re.compile(r"")
URL_REGEX = re.compile("(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')")
img = re.compile("(.*)<img (.*?) src=\"(.*?)img(.*?)\"(.*?)")
FILE_TYPE1 = re.compile(r".bmp|.css|.csv|.docx|.ico|.jpeg|.jpg|.js|.json|.pdf|.png|.svg|.xls|.xml|.gif"
r"|function()|javascript:|display:|float:|width:|position:|default:|type:|"
r"padding-right:|element:|border-right:|false:|null:")
FILE_TYPE = re.compile(r".bmp|.css|.csv|.docx|.ico|.jpeg|.jpg|.js|.json|.pdf|.png|.svg|.xls|.xml|.gif"
r"|function()|javascript:|<|>")
# URL_REGEX1 = re.compile(r"(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+")
# URL_REGEX3 = re.compile(r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+")
# URL_REGEX2 = re.compile(r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))')
# URL_REGEX = re.compile(r'(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')')
URL_PATH = re.compile(r"=\w+\b")
# type = re.compile(r"<li>http[s]+</li>")
# test2 = re.compile(r"http[s]?://(\w|[$-_@.&+=](sina))+")
#
# test = re.compile(r"http[s]?://(\w+\.sina(\.c(om|n))+)")
#
# test3 = re.compile(r"http[s]?://(\w+\.sina(\.c(om|n))).*=.+")
"""
这里的正则表达式犯了一个很蠢的错误,没有必要再用正则'sub'规则清洗多余的杂质,
因为finditer返回的也是match对象利用分组group就可以正确提取一开始弄错了
后来才意识到,我也懒得改了就这样吧,可能代码复杂度稍微要高一点吧。
"""
data5u = {'ip' : re.compile(r"<li>(\d{1,3}\.){3}\d{1,3}?</li>"),
'port' : re.compile(r"<li class=\"port.+?\">\d+</li>",re.VERBOSE),
'type': re.compile(r"<li>http[s]?</li>"),
'sub' : re.compile(r"<([/]li)?.+?>",re.IGNORECASE)}
xicidaili = {'ip' : re.compile(r"<td>(\d{1,3}\.){3}\d{1,3}?</td>"),
'port' : re.compile(r"<td>\d{1,5}</td>"),
'type': re.compile(r"<td>http[s]?</td>",re.IGNORECASE),
'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
iphai = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}?"),
'port' : re.compile(r"<td>\d{1,5}</td>"),
'type' : re.compile(r"<td>http[s]?</td>",re.IGNORECASE),
'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
xiladaili = {'ip' : re.compile(r"<td>(\d{1,3}\.){3}\d{1,3}:\d+?</td>"),
'port' : re.compile(r":\d+?</td>"),
'type' : re.compile(r"<td>http[s]?</td>",re.IGNORECASE),
'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
ip3366 = {'ip' : re.compile(r"<td>(\d{1,3}\.){3}\d{1,3}?</td>"),
'port' : re.compile(r"<td>\d{1,5}</td>"),
'type' : re.compile(r"<td>http[s]?</td>",re.IGNORECASE),
'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
jiangxianli = {'ip' : re.compile(r"<td>(\d{1,3}\.){3}\d{1,3}?</td>"),
'port' : re.compile(r"<td>\d{1,5}</td>"),
'type' : re.compile(r"<td>https[s]</td>",re.IGNORECASE),
'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
ip_huan = {'link': re.compile(r"\"\?page=.+?\""),
'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}?"),
'port' : re.compile(r"<td>\d{1,5}</td>"),
'sub' : re.compile(r"(<([/]td)?.+?>)|(\")")}