Я пытаюсь получить контент из App Store> Бизнес :
import requests
from lxml import html
page = requests.get("https://itunes.apple.com/in/genre/ios-business/id6000?mt=8")
tree = html.fromstring(page.text)
flist = []
plist = []
for i in range(0, 100):
app = tree.xpath("//div[@class='column first']/ul/li/a/@href")
ap = app[0]
page1 = requests.get(ap)
Когда я пытаюсь range
с (0,2)
этим работает, но когда я помещаю range
в 100
s, он показывает эту ошибку:
Traceback (most recent call last):
File "/home/preetham/Desktop/eg.py", line 17, in <module>
page1 = requests.get(ap)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 378, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='itunes.apple.com', port=443): Max retries exceeded with url: /in/app/adobe-reader/id469337564?mt=8 (Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)
python
python-requests
user3446000
источник
источник
i
переменную где-то вfor
?itunes.apple.com
. Можете ли вы запуститьdig itunes.apple.com
в командной строке и опубликовать результаты здесь?Ответы:
Здесь произошло то, что сервер itunes отклонил ваше соединение (вы отправляете слишком много запросов с одного и того же IP-адреса за короткий промежуток времени)
след ошибка в заблуждение это должно быть что - то вроде «Нет соединения может быть сделано , потому что целевая машина активно отказалась от него» .
Существует проблема примерно в python.requests lib на Github, посмотрите здесь
Чтобы преодолеть эту проблему (не столько проблему, сколько вводящую в заблуждение трассировку отладки), вы должны перехватывать исключения, связанные с подключением, например:
Другой способ преодоления этой проблемы - если вы используете достаточный промежуток времени для отправки запросов на сервер, это может быть достигнуто с помощью
sleep(timeinsec)
функции в python (не забудьте импортировать sleep)В общем, все запросы - это потрясающая библиотека Python, надеюсь, она решит вашу проблему.
источник
(Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)
части. «gai» означаетgetaddrinfo
, и вероятная связанная ошибка: EAI_NONAME Узел или служба не известны; или узел и служба имеют значение NULL; или AI_NUMERICSERV был указан в hints.ai_flags, и служба не была числовой строкой номера порта. Вероятно, это выглядело так, как будто это исправило сон, но вы, вероятно, только что спали из-за временной проблемы с преобразователем DNS.Просто используйте
requests'
функции:Это будет
GET
URL и повторите 3 раза в случаеrequests.exceptions.ConnectionError
.backoff_factor
поможет применить задержки между попытками избежать повторного сбоя в случае периодической квоты запроса.Посмотрите, у
requests.packages.urllib3.util.retry.Retry
него есть много вариантов, чтобы упростить повторные попытки.источник
python manage.py shell
и используюsession.get('http://localhost:8000/api/')
. Любая помощь? @Zuludev-server
и продолжать работать первым.Просто сделай это,
Вставьте следующий код вместо
page = requests.get(url)
:Пожалуйста :)
источник
import time
requests
имеет свой собственный код для обработки своей ошибки и повторите попыткуexcept: ...
) отrequests
иsleep()
в ответ. Вместо этого они должны ловитьrequests.exceptions.ConnectionError
иsleep()
только если это исключение происходит. (Или, что еще лучше, просто используйте встроенныйRetry()
класс, который поставляется вместеrequests
с @Zulu).pip install pyopenssl
казалось, решил это для меня.https://github.com/requests/requests/issues/4246
источник
Я получил похожую проблему, но следующий код работал для меня.
«verify = False» отключает проверку SSL. Попробуйте и поймать можно добавить как обычно.
источник
Всегда полезно реализовать обработку исключений. Это не только помогает избежать неожиданного выхода из скрипта, но также может помочь регистрировать ошибки и информационные уведомления. При использовании запросов Python я предпочитаю ловить исключения вроде этого:
Здесь renewIPadress () - это пользовательская функция, которая может изменить IP-адрес, если он заблокирован. Вы можете обойтись без этой функции.
источник
ip-adrress
в Python, знаете ли вы что-нибудь об этом, а затем дайте мне знатьОпределение прокси в корпоративной среде решило это за меня.
Полная ошибка:
источник
я не смог заставить его работать на windows даже после установки pyopenssl и пробовать разные версии python (хотя он нормально работал на mac), поэтому я переключился на urllib, и он работает на python 3.6 (из python .org) и 3.7 (anaconda) )
источник
Когда я писал сценарий тестирования браузера селена, я столкнулся с этой ошибкой при вызове
driver.quit()
перед использованием вызова API JS. Помните, что выход из веб-драйвера - это последнее, что нужно сделать!источник
Добавляю свой опыт для тех, кто переживает это в будущем. Моя конкретная ошибка была
Оказывается, это на самом деле потому, что я достиг максимального количества открытых файлов в моей системе. Это не имеет ничего общего с ошибочными соединениями или даже ошибкой DNS, как указано.
источник
Добавляю свой опыт:
когда я пытался скачать файл, указанный в URL.
Ошибка была
Я исправил это, добавив
verify = False
в функцию следующее:источник
Проверьте подключение к сети. У меня было это, и у VM не было надлежащего сетевого подключения.
источник
Добавьте заголовки для этого запроса.
источник