素材牛VIP会员
Python获取HTTP请求的状态码(200,404等)
 飞***猪  分类:Python  人气:991  回帖:2  发布于6年前 收藏

Python获取HTTP请求的状态码(200,404等),不访问整个页面源码,那样太浪费资源:

输入:segmentfault.com 输出:200
输入:segmentfault.com/nonexistant 输出:404
 标签:httppython

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv2 入门
熊***子 学生 6年前#1

你用get请求就会请求整个头部+正文, 可以试下head方法, 直接访问头部!

import requests
html = requests.head('http://segmentfault.com')    # 用head方法去请求资源头部
print html.status_code  # 状态码

html = requests.head('http://segmentfault.com/nonexistant')   # 用head方法去请求资源头部
print html.status_code   # 状态码

# 输出:
200
404
Lv1 新人
闪***星 UI设计师 6年前#2

参考文章:Python实用脚本清单

http不只有get方法(请求头部+正文),还有head方法,只请求头部

import httplib

def get_status_code(host, path="/"):
    """ This function retreives the status code of a website by requesting
        HEAD data from the host. This means that it only requests the headers.
        If the host cannot be reached or something else goes wrong, it returns
        None instead.
    """
    try:
        conn = httplib.HTTPConnection(host)
        conn.request("HEAD", path)
        return conn.getresponse().status
    except StandardError:
        return None
        
print get_status_code("segmentfault.com") # prints 200
print get_status_code("segmentfault.com", "/nonexistant") # prints 404
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取