@BickDem
Школьник, yчy python

Requests.exceptions.ConnectionError: () как решить?

Добрый вечер, пишy парсер при выводе фyнкции выходит ошибка
requests.exceptions.ConnectionError: ('Connection aborted.', TimeoutError(10060, 'Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера', None, 10060, None))


Код:
# -*- coding: utf-8 -*-

import requests
from bs4 import BeautifulSoup as BS

URL = requests.get(str(input('Введите ссылкy для парсинга: ')))

def options():
    URL = requests.get(str(input('Введите ссылкy для парсинга: ')))
    HEADERS = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
    }
    response = requests.get(URL, headers = HEADERS)
    soup = BS(response.content, 'html.parser')
    items = soup.findAll('div', class_ = 'layout-width')
    prices = []

    for item in items:
        prices.append({
            'title' : item.find('span', class_ = 'current-price product-price-discounted')
        })
    
    print(prices)

options()


Спасибо за дальнейшие ответы ;)
  • Вопрос задан
  • 3943 просмотра
Решения вопроса 1
Ternick
@Ternick
После input() вы и так получите строку, зачем снова вызывать str ?
Вводить ссылку со всеми штуками (https://google.com).
Небольшой рефакторинг:
# -*- coding: utf-8 -*-

import requests
from bs4 import BeautifulSoup as BS

#URL = requests.get(str(input('Введите ссылкy для парсинга: '))) Зачем оно тут?

def options():
    URL = input('Введите ссылкy для парсинга: ') # Пример вводимой ссылки https://google.com
    HEADERS = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
    }
    response = requests.get(URL, headers = HEADERS)
    soup = BS(response.content, 'html.parser')
    items = soup.findAll('div', class_ = 'layout-width')
    prices = []

    for item in items:
        prices.append({
            'title' : item.find('span', class_ = 'current-price product-price-discounted')
        })
    
    print(prices)

if __name__ == '__main__':
	options()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы