@Soft_touch_plastic

Почему grequests с прокси не работает на хостинге?

Добрый день, пишу парсер одного сайта, разбил его на потоки, работает по следующему принципу - передается массив прокси и соразмерный ему массив ссылок, с помощью grequests все парсится. Вопрос в том, что на моей машине (windows 10) все парсится нормально, вот код:
proxies = []
    authes = []
    for proxy in raw_proxies:
        host = proxy.split('@')[0]
        auth_arr = proxy.split('@')[1]
        auth = HTTPProxyAuth(auth_arr.split(':')[0], auth_arr.split(':')[1])
        authes.append(auth)
        proxies.append(dict(http='socks5://'+auth_arr+"@"+host, https='socks5://'+auth_arr+"@"+host))
    
    for link, name, proxy, auth in zip(urls, names, proxies, authes):
        rs.append(grequests.get(link, proxies=proxy, auth=auth))

    results = grequests.map(rs)

Тут все работает нормально, проверил через 2ip.ru, возвращает указанный в прокси ip. Однако когда я залил это на хостинг, вместо массива реквестов 200 возвращает массив None!
Сделал тестовый код:
def with_proxy():
    proxy = '****:*****@******:*****'
    host = proxy.split('@')[0]
    auth_arr = proxy.split('@')[1]
    auth = HTTPProxyAuth(auth_arr.split(':')[0], auth_arr.split(':')[1])
    proxies=dict(http='socks5://'+auth_arr+"@"+host, https='socks5://'+auth_arr+"@"+host)
    rs = [grequests.get('https://google.com', proxies=proxies, auth=auth)]
    result = grequests.map(rs)
    print('Запрос с прокси->', result)

def without_proxy():
    rs = [grequests.get('https://google.com')]
    result = grequests.map(rs)
    print('Запрос без прокси->', result)

with_proxy()
without_proxy()


Результат на моей тачке:
Запрос с прокси-> [<Response [200]>]
Запрос без прокси-> [<Response [200]>]


На двух хостах, один неизвестен мне, другой мой, от рег ру:
Запрос с прокси-> [None]
Запрос без прокси-> [<Response [200]>]


В чем причина такого поведения, и можно ли это как нибудь обойти?
  • Вопрос задан
  • 332 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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