Python请求生成状态代码500,即使网站可用

2024-09-28 18:51:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python检查网站列表是否在线。但是,在一些站点上,请求生成错误的状态代码。例如,我得到的https://signaturehound.com/的状态码是500,即使网站在线,在Chrome开发者工具中显示的响应码是200

我的代码如下所示:

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

def url_ok(url):

   r = requests.head(url,timeout=5,allow_redirects=True,headers=headers)
   status_code = r.status_code

   return status_code

print(url_ok("https://signaturehound.com/"))

Tags: 代码httpscomurl列表站点网站状态
1条回答
网友
1楼 · 发布于 2024-09-28 18:51:12

正如@CaptainDaVinci在评论中所建议的,解决方案是将代码中的head替换为get

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

def url_ok(url):

   r = requests.get(url,timeout=5,allow_redirects=True,headers=headers)
   status_code = r.status_code

   return status_code

print(url_ok("https://signaturehound.com/"))

相关问题 更多 >