Я написал простой скрипт для получения html с нескольких веб-сайтов. Хотя до вчерашнего дня у меня не было проблем со сценарием. Он внезапно начал генерировать исключение ниже.
Traceback (most recent call last):
File "crowling.py", line 45, in <module>
result = requests.get(url)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/sessions.py", line 685, in send
r.content
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/models.py", line 829, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "/Users/gen/.pyenv/versions/3.7.1/lib/python3.7/site-packages/requests/models.py", line 754, in generate
raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer'))
Основная часть скрипта такова.
c = 0
#urls is the list of urls as strings
for url in urls:
result = requests.get(url)
c += 1
with open('htmls/p{}.html'.format(c),'w',encoding='UTF-8') as f:
f.write(result.text)
URL-адреса списка генерируются другими моими кодами, и я проверил, что URL-адреса верны. Также время исключения не является постоянным. Иногда он останавливается при сканировании 20-го htmls, а иногда до 80-го, а затем останавливается. Поскольку исключение внезапно появилось без изменения кодов, я предполагаю, что исключение связано с соединением Inte rnet. Но я хочу убедиться, что скрипт работает стабильно. Есть ли возможная причина этой ошибки?