尝试/ URL破损除外

时间:2019-05-23 14:21:14

标签: python-3.x get python-requests

我正试图告诉我的脚本从url获取内容,否则将其记录为错误。

我在Correct way to try/except using Python requests module?中看到了一个示例,但它似乎不适用于以下代码中的url。

URL已损坏,因此我希望脚本执行except块并记录错误。它只是卡住了,没有结果或错误。

import requests
import sys

url = 'https://m.sportsinteraction.com/fr/football/international/coupe-du-monde-feminine-pari/fifawomen-wc-219-reach-the-semi-finals-scotland-05-21-2019-322-1609228/'
try:
    r = requests.get(url)
except requests.exceptions.RequestException as e:
    print (e)
    sys.exit(1)

下面是我得到的错误的片段:

enter image description here

2 个答案:

答案 0 :(得分:0)

如果是远程工作,则:

  • 您的互联网连接中断或速度太慢
  • 您的互联网提供商可能对此网站有限制

如果在本地:

  • 确保您的服务器正常运行和配置
  • 尝试重置您网站的浏览器数据
  

似乎不是代码问题

答案 1 :(得分:0)

由于以下原因,这个问题非常有趣:

  1. 脚本在语法上是正确的

  2. URL在某些位置打开

由于我使用的是旧版Chrome,因此我最初尝试了Python - selenium webdriver stuck at .get() in a loop的解决方案,但该解决方案仍然有效。

我接下来尝试的下一个解决方案是在get()语句上设置超时,换句话说:

import requests
import sys

url = 'https://m.sportsinteraction.com/fr/football/international/coupe-du-monde-feminine-pari/fifawomen-wc-219-reach-the-semi-finals-scotland-05-21-2019-322-1609228/'
try:
  r = requests.get(url, timeout = 3)
except requests.exceptions.RequestException as e:
  print (e)
  sys.exit(1)

此解决方案的工作方式是在规定的时间之后停止请求,然后转到except块。