@Akshin17
Пайтон програмист

Что можно использовать для ускорения прокси чекера?

Как можно ускорить процесс чека?
и вообще чем ускоряют?
не судите строго мой код сам знаю что криво пишу (
import requests
import random
from bs4 import BeautifulSoup as bs
import time
from threading import Thread as th



def bot():
    global a,f

    for i in range(len(a)):
        bi = random.choice(a)
        try:
            if bi in a:

                a.remove(bi)
                print(len(a))


                try:


                    proxy = {'https':'https://'+str(bi)}




                    r = requests.get('https://www.showmyip.com',proxies=proxy)



                    soup = bs(r.content,'lxml')
                    find = soup.find('section',attrs={'id':'content'}).find_next('h2').text

                    good = open('good.txt', 'a')
                    good.write(bi+'\n')
                    good.close()
                    print(find)
                except:
                    print('#######'+str(bi))
                    ploxo = open('ploxo.txt', 'a')
                    ploxo.write(bi+'\n')
                    ploxo.close()

        except:
            pass




with open('proxyyyyy.txt','r')as f:
    a = f.read().split('\n')

t1 = time.time()

var = int(input('Количество потоков: '))

for i in range(var):
    p1 = th(target=bot).start()
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@pro100chel
ассинхронность та еще муть) Но для кучи и это знать надо.
Сейчас тебе проще будет использовать многопоточность.
А что у тебя со скоростью? У тебя много страниц надо чекнуть? Если так то ни ассинхронность, ни многопоточность тебе особо не поможет. Тут тебе надо будет использовать lxml.html. Не lxml в bs4, а чистый lxml. Дает прирост скорости в несколько раз, а то и в десятки.
Многопоточность тоже оставь. Потести скорость чекинга и отрегулируй количество потоков.
Да, понятно, что lxml для тебя будет что-то новое. Но если хочешь быстрее, то лучше так.
Вот тебе бонусом ссылочка как по атрибуту выделить html элемент, как в bs4, только в lxml

https://stackoverflow.com/questions/8226490/findin...
Самый первый ответ смотри
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bacon
Асинхронность, например aiohttp client https://docs.aiohttp.org/en/stable/client_quicksta... За global обзывают дятлом и бьют ногами
ЗЫ основная проблема, что threading и asyncio не очень подходят новичкам, и мне тяжело сказать, что будет легче в понимании.
Ответ написан
@javedimka
Хочу сока
Да проще простого, перепиши на неблокирующие сокеты и никаких асинкайо не надо
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы