python检测网页http状态码( 附完整代码)

作者: 杨圣亮 分类: SEO教程 发布时间: 2017-03-01 23:24:41

在那篇 SEO工作者必须知道的9个网页HTTP状态码 中,对常见的http状态码作了介绍,然而并没有说明如何获取到这些状态码的? 除了使用google chrome F12获取当前网页http状态码和Firefox浏览使用Firebug获取http状态码之外,还有没有别的方法呢?答案是肯定的,接下来将用python3的requests库来轻松获取网页的http响应码。

自开始做SEO工作的那一天起,在初期时候,尽管不少的所谓SEO大牛、以及各种SEO培训班都发出一种言论——SEO不需要懂技术,怀着对这种理论深深的怀疑,一些需求向程序员提交,往往程序员理解不了、各种推辞、各种排期、遭受白眼的情形还历历在目。求人不如求己,自己能做就自己做,做不到的通过学习、也要努力做到。

怀着对技术的渴求,一直在工作之余学习编程语言,从linux shell、C 语言、java再到python一路走来。最终把注意力放到了python上,虽然不如c和java的运行速度,但是其简洁的语法,远胜其他语言。人生苦短,请用python,渴望掌握一门编程语言的SEO或运营同志们,python,你值得拥有。用ptyhon进行分词、信息采集、搜索引擎提交……,各种便利,包你拿起就舍不得放下。

我不是python的传教士,推荐它的用意,也是为了帮助亲们更好、更有效的完成工作,当然,编程的种种乐趣,你得自己去琢磨,我不会告诉你 ^-^。

言归正传,用requests库来获取网页的各种状态码吧。

新建一个文件: getHttpStatusCode.py 内容如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
url: https://www.yangshengliang.com/seo-ji-shu/seo-jiaocheng/722.html
author: fedkey
"""

import requests
import sys


def getHttpStatusCode(url):
    userAgent = {"user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"} # 添加一个user-agent,访问反爬虫策略严格的网站很有用
    timeOut = 4 # 请求超时时间设置为4秒
    try:
        request = requests.get(url, headers = userAgent, timeout = timeOut)
        httpStatusCode = request.status_code
        return httpStatusCode

    except requests.exceptions.HTTPError as e:
        return e

if __name__ == "__main__":
    url = sys.argv[1]  # 执行程序接受url作参数
    status = getHttpStatusCode(url)
    print (status)

使用方法:切换到程序文件所在目录,执行:

python  getHttpStatusCode.py  "https://www.yangshengliang.com/"

输出的结果是: 200   没有问题

将https://www.yangshengliang.com/ 改成  https://www.yangshengliang.com/90  (不存在的url)

再次执行:

python  getHttpStatusCode.py  "https://www.yangshengliang.com/90"

得到的将是:404

完整程序,下载之后去掉.txt后缀:

getHttpStatusCode.py下载

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

75  +    =  77

微信