• XSS.stack #1 – первый литературный журнал от юзеров форума

Парсер на Python, используя Geonode API

callmeram

floppy-диск
Пользователь
Регистрация
11.05.2024
Сообщения
4
Реакции
13
Вечер в хату хссу. Сегодня мы напишем парсер прокси используя API сервиса Geonode и сможем парсить практически бесконечное количество прокси.
Для начала создаем виртуальную среду питона.
Bash:
python3 -m venv .venv
Далее заходим в нее
Bash:
source .venv/bin/activate
Затем устанавливаем нужную библу для работы
Bash:
pip3 install requests
После этого создаем файл main.py и добавляем данный код:
Python:
import requests

def geonode(page=1):
    url = f"https://proxylist.geonode.com/api/proxy-list?limit=500&page={page}&sort_by=lastChecked&sort_type=desc"
    r = requests.get(url)
    if r.status_code == 200:
        with open(f'proxy_{page}.txt', 'a+', encoding='utf-8') as proxy_file:
            for proxy in r.json()["data"]:
                ip = proxy['ip']
                port = proxy['port']      
                proto = proxy['protocols'][0]      
                proxy_file.write(f'{proto}://{ip}:{port}\n')      
             proxy_file.close()      
     else:  
         print("Overlimit!")
         exit()

 
for i in range(1, 11):
    geonode(i)

Запускаем наше творение:
Bash:
python3 main.py

В цикле for можем регулировать с какой по какую страницы нам парсить прокси. В моем случае будет парсится 10 страниц, с 1 по 10.
В ссылке можно задать лимит на страницу, максимальный 500.
В основном парсится socks4/5, иногда http/https
Так же в коде нет проверки на уникальность прокси(самый простой скрипт для простого парсинга), но в целом все работает.
Убедимся в том, что файлы с прокси разные:
Код:
MD5 (proxy_1.txt) = 51aae13caddb7ae7343c0e3e450c75ca
MD5 (proxy_2.txt) = 5d8d0583802843271d0ad27ed38721e8
MD5 (proxy_3.txt) = efa85596717e7f11a5ab6ffc182ef2ff
MD5 (proxy_4.txt) = d2ea835719aca19c48b6f96fa3669f6f
MD5 (proxy_5.txt) = c620da68ee4d1719c73a598921c04f1b
MD5 (proxy_6.txt) = ba2af2f13c3db09eacac4fa640613f15
MD5 (proxy_7.txt) = a120e5d846f08f10536078b206235141
MD5 (proxy_8.txt) = bade8f42eb341e1a4a320ea358cc1516
MD5 (proxy_9.txt) = 848f31f5a971fe58dd4e0c43c2814b8d
MD5 (proxy_10.txt) = 42efd22c0806b79ff4b27a8c242f7b91
Не судите строго, новичок, знаю, что парсеров развелось. Всем удачи и хорошего ворка
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх