Source code for scylla.providers.a2u_provider
import re
from requests_html import HTML
from scylla.database import ProxyIP
from .base_provider import BaseProvider
[docs]class A2uProvider(BaseProvider):
[docs] def urls(self) -> [str]:
return [
'https://raw.githubusercontent.com/a2u/free-proxy-list/master/free-proxy-list.txt',
]
[docs] def parse(self, html: HTML) -> [ProxyIP]:
ip_list: [ProxyIP] = []
text = html.raw_html
ip_port_str_list = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{2,5}', text.decode('utf-8'))
for ip_port in ip_port_str_list:
ip = re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', ip_port).group(0)
port = re.search(r':(\d{2,5})', ip_port).group(1)
if ip and port:
p = ProxyIP(ip=ip, port=port)
ip_list.append(p)
return ip_list
[docs] @staticmethod
def should_render_js() -> bool:
return False