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

ConnectionAbortedError: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение

28.08.2019, 14:37. Показов 23105. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую !

Я пытаюсь автоматизировать свой парсер(допустим включишь его один раз утром и выключаешь вечером).

Вот такой код я написал с использованием библиотеки schedule:

Код:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import requests
import pymysql
import dateparser
import time
import schedule
from bs4 import BeautifulSoup
 
# < Логер для подсчета времени работы скрипта
created = time.strftime('%Y-%m-%d %H:%M:%S')
start_time = time.time()
 
# < Получаем html код.
def get_html(url):
    r = requests.get(url)
    return r.text
 
# < Получаем ссылки.
def get_resource_links(resource_page,links_rule,resource_domain):
    resource_links = []
    soup = BeautifulSoup(resource_page,'lxml')
    resource_links_blocks = soup.find_all(links_rule[0],{links_rule[1]:links_rule[2]})
    for resource_link_block in resource_links_blocks:
        a_tag = resource_link_block .find("a")
        if a_tag:
            link = a_tag.get("href")
            resource_links.append(resource_domain + link)
    return resource_links
 
# < Собираем заголовки с страницы.
def get_item_title(item_page,title_rule):
    soup = BeautifulSoup(item_page, 'lxml')
    item_title = soup.find(title_rule[0],{title_rule[1]:title_rule[2]})
    return item_title['content']
 
# < Собираем даты с страницы.
def get_item_datetime(item_page,datetime_rule,datetime1_rule):
    soup = BeautifulSoup(item_page, 'lxml')
    item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]})
    if item_datetime is not None:
        item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]}).text
        item_datetime = dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
    else:
        if (len(datetime1_rule) == 3):
            item_datetime = soup.find(datetime1_rule[0],{datetime1_rule[1]:datetime1_rule[2]}).text
            item_datetime = dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
        else:
            item_datetime = ''
    return item_datetime
 
# < Собираем контент с страницы.
def get_text_content(item_page,text_rule,text1_rule):
    soup = BeautifulSoup(item_page, 'lxml')
    item_text = soup.find(text_rule[0],{text_rule[1]:text_rule[2]})
    if item_text is not None:
        item_text = soup.find(text_rule[0],{text_rule[1]:text_rule[2]}).text
    else:
        if (len(text1_rule) == 3):
            item_text = soup.find(text1_rule[0],{text1_rule[1]:text1_rule[2]}).text
        else:
            item_text = ''
    return item_text
 
# < Подключение к базе данных.
connection = pymysql.connect(host = 'localhost',
                             user = 'root',
                             password = '',
                             db = 'news_portal',
                             charset = 'utf8',
                             autocommit = True)
cursor = connection.cursor()
 
# < Запрос правил выдергивания из таблицы resource контента.
cursor.execute('SELECT * FROM `resource`')
resources = cursor.fetchall()
 
# < Вызов всех функций.
def call_all_func(resources):
    # < Цикл для перебора из кортежа.
    for resource in resources:
        resource_name = resource[1]
        resource_link = resource[2]
        resource_url = resource[3]
        link_rule = resource[4]
        title_rule = resource[5]
        datetime_rule = resource[6]
        datetime1_rule = resource[7]
        text_rule = resource[8]
        text1_rule = resource[9]
        print(resource_name)
        resource_domain=resource_link
        # < Разбиваю данные из кортежа в массив.
        links_rule = link_rule.split(',')
        title_rule = title_rule.split(',')
        datetime_rule = datetime_rule.split(',')
        datetime1_rule = datetime1_rule.split(',')
        text_rule = text_rule.split(',')
        text1_rule = text1_rule.split(',')
        resource_page = get_html(resource_url)
        resource_links = get_resource_links(resource_page,links_rule,resource_domain)
        print('кол-во ссылок: '+str(len(resource_links)))
 
        # < Цикл для вызова функции.
        for resource_link in resource_links:
            item_page = get_html(resource_link)
            item_title = get_item_title(item_page,title_rule)
            item_datetime = get_item_datetime(item_page,datetime_rule,datetime1_rule)
            item_text_content = get_text_content(item_page,text_rule,text1_rule)
 
            try:
                # < Запись новостей в БД.
                sql = "insert into items (`item_link`,`item_title`,`item_datetime`,`item_text_content`) values (%s,%s,%s,%s)"
                cursor=connection.cursor()
                cursor.execute(sql,(str(resource_link),str(item_title),str(item_datetime),str(item_text_content)))
                print('Запись в базу данных успешно завершена!')
            except pymysql.err.IntegrityError:
                print('ah shit ! duplicate error!')
                break
            except pymysql.err.InternalError:
                print('ah shit ! error')
                break
call_all_func(resources)
 
schedule.every(120).seconds.do(call_all_func, resources)
 
while True:
    schedule.run_pending()
    time.sleep(1)
 
# < Логер для подсчета времени работы скрипта
duration = time.time()-start_time # время работы в секундах,
finished = time.strftime('%Y-%m-%d %H:%M:%S')
 
sql = "insert into parser_logs (`created`,`finished`,`duration`) values (%s,%s,%s)"
cursor=connection.cursor()
cursor.execute(sql,(str(created),str(finished),str(duration)))
print('Запись логов успешно завершена!')
 
connection.close()
И при запуске кода у меня выходит такая ошибка:
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
Traceback (most recent call last):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 691, in _read_bytes
    data = self._rfile.read(num_bytes)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
ConnectionAbortedError: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:/Users/Администратор/PycharmProjects/Task/sql.py", line 126, in <module>
    schedule.run_pending()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\schedule\__init__.py", line 563, in run_pending
    default_scheduler.run_pending()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\schedule\__init__.py", line 94, in run_pending
    self._run_job(job)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\schedule\__init__.py", line 147, in _run_job
    ret = job.run()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\schedule\__init__.py", line 466, in run
    ret = self.job_func()
  File "C:/Users/Администратор/PycharmProjects/Task/sql.py", line 113, in call_all_func
    cursor.execute(sql,(str(resource_link),str(item_title),str(item_datetime),str(item_text_content)))
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 170, in execute
    result = self._query(query)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\cursors.py", line 328, in _query
    conn.query(q)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 732, in _read_query_result
    result.read()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 657, in _read_packet
    packet_header = self._read_bytes(4)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pymysql\connections.py", line 699, in _read_bytes
    "Lost connection to MySQL server during query (%s)" % (e,))
pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query ([WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение)')
 
Process finished with exit code 1
Как я понял из ошибки это вроде как не связано с моим кодом.Это все что мне удалось понять из ошибки.

Как устранить эту ошибку ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2019, 14:37
Ответы с готовыми решениями:

ConnectionAbortedError: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение
Здравствуйте! Сегодня столкнулся с такой проблемой - сервер начал выдавать ошибку в консоль: Exception happened during...

Программа на вашем хост-компьютере разорвала установленное подключение
Добрый день, есть программа написанная на C#, 1 раз подключается к серверу и после этого шлет ему sql запросы. Заметил, что после...

Программа на вашем хост-компьютере разорвала установленное подключение
Пишу клиент серверное приложение, при входе в аккаунт и попытке что-нибудь сделать вылетает ошибка из заголовка, также криво работает...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
28.08.2019, 15:27
Цитата Сообщение от r4khic Посмотреть сообщение
Lost connection to MySQL server
Цитата Сообщение от r4khic Посмотреть сообщение
Как устранить эту ошибку ?
проверить свой мускуль, поработать пока с ним без этих вырвиглазных скриптов, чтобы убедиться что все в порядке.

Почитать в инете по этой ошибке, есть разные рецепты. Но сначала - то, что я выше написал.
0
0 / 0 / 0
Регистрация: 21.08.2019
Сообщений: 15
29.08.2019, 06:12  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
проверить свой мускуль
мускуль ? что это?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
29.08.2019, 06:13
r4khic, MySQL же, ты вообще читаешь текст ошибок? Я кроме того тебе в прошлом посте процитировал
Цитата Сообщение от Welemir1 Посмотреть сообщение
Lost connection to MySQL server
Цитата Сообщение от Welemir1 Посмотреть сообщение
to MySQL server
Цитата Сообщение от Welemir1 Посмотреть сообщение
MySQL
0
0 / 0 / 0
Регистрация: 21.08.2019
Сообщений: 15
29.08.2019, 06:50  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
ты вообще читаешь текст ошибок?
читаю я просто сразу не понял значения слово мускуль

Добавлено через 50 секунд
Я и свой mysql проверил,с ним все в порядке.

Добавлено через 30 минут
Цитата Сообщение от Welemir1 Посмотреть сообщение
Welemir1
Гуглил в инете.
И по совету решил выключить анти-вирус и брэндмауер.
Теперь выходит такая ошибка:
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
Traceback (most recent call last):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 639, in _update_chunk_length
    self.chunk_left = int(line, 16)
ValueError: invalid literal for int() with base 16: b''
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 397, in _error_catcher
    yield
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 704, in read_chunked
    self._update_chunk_length()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 643, in _update_chunk_length
    raise httplib.IncompleteRead(line)
http.client.IncompleteRead: IncompleteRead(0 bytes read)
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\models.py", line 750, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 527, in stream
    for line in self.read_chunked(amt, decode_content=decode_content):
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 732, in read_chunked
    self._original_response.close()
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\response.py", line 415, in _error_catcher
    raise ProtocolError('Connection broken: %r' % e, e)
urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
  File "C:/Users/Администратор/PycharmProjects/Task/sql.py", line 121, in <module>
    call_all_func(resources)
  File "C:/Users/Администратор/PycharmProjects/Task/sql.py", line 104, in call_all_func
    item_page = get_html(resource_link)
  File "C:/Users/Администратор/PycharmProjects/Task/sql.py", line 14, in get_html
    r = requests.get(url)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 686, in send
    r.content
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\models.py", line 828, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "C:\Usersдминистратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\models.py", line 753, in generate
    raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))
 
Process finished with exit code 1
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
29.08.2019, 07:05
r4khic, ну не там значит читал, среди прочего мне попадалось настройка переменных БД, а также то что она возможно повреждена и нужно ее переустанавливать и прочее.
сейчас тебе нужно почитать про Connection broken: IncompleteRead
а также еще раз поработать с БД руками, повыполнять все те же запросы -не будет ли ошибок, потом поработать с ней питоном только без остального скрипта -только работа с БД.
0
0 / 0 / 0
Регистрация: 21.08.2019
Сообщений: 15
29.08.2019, 13:40  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
r4khic,
Хорошо почитаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2019, 13:40
Помогаю со студенческими работами здесь

Программа на вашем хост-компьютере разорвала установленное подключение
Ошибка происходит когда подключаюсь/пытаюсь войти/зарегистрировать нового пользователя на локальном сервере к базе данных(php myadmin). P.S...

Pop.yandex.ru: На шестом письме Exception "Программа на вашем хост-компьютере разорвала установленное подключение"
Приветствую. :) Ситуация такая. Работаю с pop.yandex.ru. Яша шлет нули при попытке получить второе письмо. _Socket = new...

Не удается прочитать данные из транспортного соединения: Программа на вашем хост-компьютере разорвала соединение
Всех приветствую! Пишу индивидуальный проект в колледже. Задали сделать прогу и сервак к ней прикрутить. С net методами впервые сталкиваюсь...

ConnectionResetError: [WinError 10054] Удаленный хост принудительно разорвал существующее подключение
Добрый день! я только в начале изучения прошу подсказать, что я делаю не так до этого python выводил страницу с from fastapi import...

Программа не может быть запущена, т.к. на Вашем компьютере установлена программа-эмулятор
При запуске лицензионной детской игровой программы выскакивает сообщение: Программа не может быть запущена, т.к. на Вашем компьютере...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru