openproxyherder/scripts/gatherers/vpngate_other.py

34 lines
1.2 KiB
Python

import psycopg2
import psycopg2.extras
import requests
import re
import yaml
from bs4 import BeautifulSoup
from datetime import datetime
from time import sleep
config = yaml.full_load(open("config.yaml").read())
pgconn = psycopg2.connect(dbname=config["dbname"], user=config["dbuser"], password=config["dbpassword"], host=config["dbhost"])
current_servers = []
with pgconn:
with pgconn.cursor() as curs:
curs.execute("select ip, port from proxies where proxy_type='vpngate'")
current_servers = curs.fetchall()
proxies = []
for i in range(1,3):
r = requests.get(f"https://freevpn.gg/?p={i}", headers={"User-Agent": config["user_agent"]})
data = BeautifulSoup(r.text, features="html5lib")
for ip_data in data.find_all(class_="card-box"):
ip = ip_data.find("h3").text
port = re.search("TCP\((\d+)\)", ip_data.find(class_="card-text").text)
if port and (ip, int(port[1])) not in current_servers:
proxies.append((ip, port[1], ip, "unscanned", "vpngate", datetime.now(), "vpngate proxies freevpn"))
sleep(5)
with pgconn:
with pgconn.cursor() as curs:
insert_query = """
insert into proxies (ip, port, exit_ip, status, proxy_type, submitted_at, comment)
values %s"""
psycopg2.extras.execute_values(curs, insert_query, proxies)