0 / 0 / 0
Регистрация: 21.08.2019
Сообщений: 15

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

28.08.2019, 14:37. Показов 23698. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru