在Python中,如果你使用`requests`库进行爬虫操作,你可以通过`status_code`属性来获取HTTP响应的状态码。以下是一个简单的示例:
import requests
发送GET请求
res = requests.get('http://example.com')
获取状态码
status_code = res.status_code
打印状态码
print(f'HTTP状态码:{status_code}')
如果请求成功,`status_code`通常为200。如果请求失败,它会返回一个不同的数字,例如404表示未找到资源,500表示服务器内部错误等。
如果你需要更详细的错误信息,可以使用`res.text`或`res.content`来查看服务器返回的详细错误消息。
如果你需要模拟HTTP请求并检查返回状态码,可以使用`subprocess`模块执行`curl`命令,如下所示:
import subprocess
def run_command(command):
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True)
return result.returncode, result.stderr
except Exception as e:
return -1, str(e)
执行curl命令获取状态码
command = 'curl -I http://example.com' -I 只获取HTTP头信息
return_code, error_message = run_command(command)
if return_code == 0:
print('命令执行成功')
else:
print(f'命令执行失败,错误信息:{error_message}')
在这个例子中,`-I`选项让`curl`只获取HTTP头信息,不下载整个响应体。`res.stderr`将包含任何错误信息,如果`return_code`不是0,则表示命令执行失败