Пытаюсь спарсить с сайта email адрес нужной кампании, сначала всё работает хорошо, но черех некоторе время выдает ошибку
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='vbankcenter.ru', port=443): Max retries exceeded with url: /contragent/search?searchStr=%D0%9E%D0%9E%D0%9E%20%D0%9C%D0%BE%D1%80%D1%81%D0%BA%D0%B0%D1%8F%20%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%81%D0%BA%D0%B0%D1%8F%20%D0%9A%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x000001B82A48C040>: Failed to establish a new connection: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера'))
Пробовал поставить задержки, закрывать запрос, не помогло
на вход фунцкия принимает список из названия и адреса компании
Код функции
import requests
from bs4 import BeautifulSoup
from time import sleep
def mails(req):
response = requests.get('https://vbankcenter.ru/contragent/search?searchStr=' + req[0], timeout=5)
sleep(1)
get_html = response.text
response.close()
soup = BeautifulSoup(get_html, 'html.parser')
cards = soup.find_all('article')
flag = False
for card in cards:
if card.find('p', class_="whitespace-pre-wrap mb-0").find('span').string[:-1] == req[1].split(',')[0]:
url = 'https://vbankcenter.ru' + card.contents[0].find('a')['href']
response_2 = requests.get(url, timeout=5)
parse_mails = response_2.text
response_2.close()
soup = BeautifulSoup(parse_mails, 'html.parser')
try:
soup = soup.find_all('div', class_="flex items-baseline mt-1")[1].find('a').string
print(soup)
sleep(0.5)
return [soup]
except:
sleep(0.5)
return []
if flag == False:
sleep(0.5)
return []
mails = mails(['ООО ПРОИЗВОДСТВЕННОМУ ПРЕДПРИЯТИЮ НЭЙЧЕ','353993, Россия, край. Краснодарский, г. Новороссийск, ул. ФИЗКУЛЬТУРНАЯ, д. 46'])