Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/302: Рейтинг темы: голосов - 302, средняя оценка - 4.67
15 / 13 / 4
Регистрация: 13.05.2021
Сообщений: 158

Requests не работает с прокси

01.09.2021, 12:34. Показов 60609. Ответов 10

Студворк — интернет-сервис помощи студентам
Доброго времени суток! У меня видимо не работает метод proxies, я использую прокси, но ответа нет. Код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import requests
from bs4 import BeautifulSoup
import fake_useragent
import csv
import multiprocessing
 
 
products_dict = []
 
 
def get_statues(proxy):
    url = 'https://www.tfaw.com/statues.html'
    useragent = fake_useragent.UserAgent().random
    headers = {
        'User-Agent': useragent,
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
    }
    proxies = {
        'http': f'http://{proxy}',
        'https': f'https://{proxy}'
    }
 
    try:
        r = requests.get(url=url, headers=headers, proxies=proxies, timeout=2)
        print('Прокси подходит')
        soup = BeautifulSoup(r.text, 'lxml')
 
        pagination = int(soup.find_all('ul', class_='items pages-items')[-1].find_all('a')[-2].find_all('span')[-1].text)
        for page in range(1, pagination + 1):
            url = f"https://www.tfaw.com/statues.html?p={page}"
            r = requests.get(url=url, headers=headers)
            soup = BeautifulSoup(r.text, 'lxml')
 
            cards = soup.find_all('div', class_='product details product-item-details')
 
            for card in cards:
 
                try:
                    card_href = card.find('a', class_='product name product-item-name product-item-link').get('href')
                except:
                    card_href = 'Ссылка была не найдена!'
 
                response = requests.get(url=card_href, headers=headers, proxies=proxies)
                bs4 = BeautifulSoup(response.text, 'lxml')
 
                upc = bs4.find_all('div', class_='value')[-3].text.strip()
                check_upc = len(upc)
                if check_upc == 12:
                    try:
                        card_name = card.find('a', class_='product name product-item-name product-item-link').text.strip()
                    except:
                        card_name = 'Название не найдено!'
                    try:
                        card_old_price = card.find('span', class_='old-price').text.strip()
                    except:
                        card_old_price = 'На товар есть только актуальная цена!'
                    try:
                        card_new_price = card.find_all('span', class_='price-container')[-1].text.strip()
                    except:
                        card_new_price = 'Цена не найдена!'
 
                    products_dict.append(
                        {
                            'product_name': card_name,
                            'product_url': card_href,
                            'product_old_price': card_old_price,
                            'product_new_price': card_new_price
                        }
                    )
                    print(card_name)
            print(f'[INFO] Обработана страница {page}')
    except:
        print('Прокси не подходит')
 
 
def main():
    with open('proxies.txt') as file:
        proxy_base = ''.join(file.readlines()).strip().split('\n')
 
    with multiprocessing.Pool(multiprocessing.cpu_count()) as process:
        process.map(get_statues, proxy_base)
 
 
if __name__ == '__main__':
    main()
У меня постоянно выдаёт что прокси не подходит, кстати вот список:
Code
1
2
3
4
5
6
7
8
9
10
195.201.61.51:8000
46.4.96.137:3128
182.52.236.134:8080
103.103.88.162:8080
47.242.230.213:12345
112.120.248.45:80
103.137.91.250:8080
191.96.42.80:3128
88.198.24.108:8080
103.231.163.162:8080
хотя если в блоке try вместо
Python
1
r = requests.get(url=url, headers=headers, proxies=proxies, timeout=2)
использовать
Python
1
r = requests.get(url=url, headers=headers)
то всё отлично работает
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2021, 12:34
Ответы с готовыми решениями:

Requests и прокси
У методов запроса из библиотеки request есть параметр proxies, который также можно задавать как свойство объекта session. Параметру нужно...

Прокси в requests
Здравствуйте. почему у меня не работает прокси? urrrl = 'https://httpbin.orпg/ip' r = requests.get(urrrl, proxies=proxy) ...

Добавил модуль requests в Visual Studio, но import requests подсвечен зеленым
Добавил модуль requests в Visual Studio, но import requests подсвечен зеленым. Как исправить?

10
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.09.2021, 12:55
Alina Zolotova,
1) если все работает без прокси то зачем тебе прокси?
2) прокси умирают очень быстро, ты же наверное с какого то сайтика их надергала? там каждый день новые и половина сразу мертвые
3) как ты поняла что нет ответа? так не бывает

Добавлено через 33 секунды
Цитата Сообщение от Alina Zolotova Посмотреть сообщение
except:
        print('Прокси не подходит')
это ерунда. Выводи полный текст ошибки и ее текст
0
15 / 13 / 4
Регистрация: 13.05.2021
Сообщений: 158
01.09.2021, 13:02  [ТС]
Welemir1, я взяла прокси с этого сайта https://hidemy.name/ru/proxy-list/ . В списке у меня 1500 прокси серверов, я проверила где-то 100-150 прокси серверов. Прокси надо для того, чтобы если сайт забанил за частые запросы, заходить на него через прокси. Окей, я исправила
Python
1
2
    except Exception as ex:
        print(ex)
и выдаёт следующее
Code
1
2
check_hostname requires server_hostname
HTTPSConnectionPool(host='www.tfaw.com', port=443): Max retries exceeded with url: /statues.html (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000002E0E258A730>, 'Connection to 103.250.166.17 timed out. (connect timeout=2)'))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
01.09.2021, 13:40
Цитата Сообщение от Alina Zolotova Посмотреть сообщение
print('Прокси подходит')
Глупое предположение.
Нужно также статус ответа проверять.

У меня, кстати, твои прокси из списка работают.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
>>> pr = ['195.201.61.51:8000',
'46.4.96.137:3128',
'182.52.236.134:8080',
'103.103.88.162:8080',
'47.242.230.213:12345',
'112.120.248.45:80',
'103.137.91.250:8080',
'191.96.42.80:3128',
'88.198.24.108:8080',
'103.231.163.162:8080']
>>> for p in pr:
    requests.get("https://stackoverflow.com",
             {"http":f"http://{p}","https":f"https://{p}"})
 
    
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
<Response [200]>
А вот админы сайта который ты парсишь, могут использование прокси - запретить.

Добавлено через 6 минут
Хотя, нет - я неправ. Только у двух был ответ 200.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.09.2021, 13:44
Лучший ответ Сообщение было отмечено Alina Zolotova как решение

Решение

Цитата Сообщение от Alina Zolotova Посмотреть сообщение
В списке у меня 1500 прокси серверов
мне как то товарищ попросил с проксями покидать запросов, так вот из 1000 было примерно 50 живых, это я так к слову.

Цитата Сообщение от Alina Zolotova Посмотреть сообщение
чтобы если сайт забанил за частые запросы,
то не мудрить и поставить в код паузу межде запросами, тогда и прокси не нужен
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
01.09.2021, 13:48
Только два ip рабочих.

Python
1
2
3
4
5
6
7
8
9
for p in pr:
 
    try:
        r = requests.get("https://stackoverflow.com",
        proxies={"http":f"http://{p}","https":f"https://{p}"}, timeout=2)
        time.sleep(2) 
        print(p, r.status_code)
    except Exception as err:
        print(p, err)
Code
1
2
3
4
5
6
7
8
9
10
195.201.61.51:8000 200
46.4.96.137:3128 HTTPSConnectionPool(host='stackoverflow.com', port=443): Max
182.52.236.134:8080 HTTPSConnectionPool(host='stackoverflow.com', port=443): M
103.103.88.162:8080 HTTPSConnectionPool(host='stackoverflow.com', port=443): M
47.242.230.213:12345 HTTPSConnectionPool(host='stackoverflow.com', port=443):
112.120.248.45:80 HTTPSConnectionPool(host='stackoverflow.com', port=443): Max
103.137.91.250:8080 HTTPSConnectionPool(host='stackoverflow.com', port=443): M
191.96.42.80:3128 HTTPSConnectionPool(host='stackoverflow.com', port=443): Max
88.198.24.108:8080 HTTPSConnectionPool(host='stackoverflow.com', port=443): Ma
103.231.163.162:8080 200
1
15 / 13 / 4
Регистрация: 13.05.2021
Сообщений: 158
01.09.2021, 13:49  [ТС]
Welemir1, решила попробовать что-то новое с прокси, а то надоело через паузы делать) Кстати, спасибо вам за видео про курсы. Долго думала насчёт их - идти или не идти
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
01.09.2021, 13:51
Цитата Сообщение от Alina Zolotova Посмотреть сообщение
Прокси надо для того, чтобы если сайт забанил за частые запросы, заходить на него через прокси.
Как выше сказал Welemir1, чтобы не банили - не нужно ddos-ить сайт. У всех есть установленные на сервере допустимые частоты обращений в секунду. Вот и не превышай их.
1
15 / 13 / 4
Регистрация: 13.05.2021
Сообщений: 158
01.09.2021, 13:52  [ТС]
Garry Galler, я решила по старинке, через паузу)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
01.09.2021, 14:16
Цитата Сообщение от Alina Zolotova Посмотреть сообщение
что-то новое с прокси,
тогда тебе нужны надежные, например за денежку ну или найти более менее стабильные прокси. Ну и там тоже не ддосить сильно то)
1
15 / 13 / 4
Регистрация: 13.05.2021
Сообщений: 158
01.09.2021, 14:48  [ТС]
хорошо, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2021, 14:48
Помогаю со студенческими работами здесь

Использование по import requests. ImportError: No module named requests
Приветствую, начну с того, что я самый новый новичек и код который написан ниже это 1й скрипт после helloworld. Итак. Я нашел на...

Не работает библиотека Requests
Не работает библиотека Requests Хочу запустить скрипт import requests response = requests.ge print(response.text) ...

Не работает библиотека requests
установил через pip библиотеку requests при попытке компиляции выдает вот такую ошибку ...

Не работает модуль Requests
Добрый день. Установил модуль Requests. Везде пишут о том как легко с ним работать. Я начал по примерам в интернете писать простейшие...

pip requests с каким браузером работает
На пк 5 браузеров, как понять с каким работает?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru