在网页爬取的时候,有时候需要判断下要爬取网页的网页HTTP状态码,然后再进行相关的工作。

1.网页HTTP状态码

HTTP状态码表示HTTP协议所返回的响应状态。具体参考:http://baike.baidu.com/view/1790469.htm?fr=aladdin

HTTP状态码有5种,所有状态码的第一个数字代表了响应的5种状态之一:(1)消息:1XX;(2)成功:2XX;(3)重定向:3XX;(4)请求错误:4XX;(5)服务器错误:5XX.

我目前常用的就两种:

(1)200:请求成功,请求所希望的响应头或者数据体随此响应返回。

(2)404:Not Found,请求失败,表示请求的资源未被在服务器上发现。整个状态可能是暂时的,也可能是永久的。所以,要做好该状态下的处理。

2.Python获取HTTP状态码

根据查找的资料,目前常用的有3中方法获取HTTP状态码。

(1)requests库

#coding=utf-8

import requests

def get_status(url):

r = requests.get(url, allow_redirects = False)

return r.status_code

def main():

status=get_status('http://www.baidu.com/')

if status==200:

print "Success"

else:

print "Failed"

if __name__=="__main__":

main();

(2)urllib库

#conding:utf-8

import urllib

def get_status(url):

res=urllib.urlopen(url)

page_status=res.getcode()

return page_status

def main():

url="http://www.baidu.com/"

page_status=get_status(url)

print page_status

if __name__=="__main__":

main()

(3)urllib2库

#coding:utf-8

import urllib2

def show_status(url):

req = urllib2.Request(url)

try:

response = urllib2.urlopen(req)

except urllib2.URLError, e:

error_status=e.code

print error_status

else:

print 'Success'

def main():

url="http://www.baidu.com/"

show_status(url)

if __name__=="__main__":

main()

3.应对异常

首先引入URLError的概念,URLError在没有网络连接或者服务器不存在的情况下产生的异常。HTTPError是URLError的子类,所以在捕捉异常时要注意二者的顺序。常见的异常捕捉方式及应对方式为:

#coding:utf-8

from urllib2 import Request, urlopen, URLError, HTTPError

def show_status(url):

req = Request(url)

try:

response = urlopen(req)

except HTTPError, e:

print 'Error code: ', e.code

except URLError, e:

print 'Reason: ', e.reason

else:

print 'Success'

def main():

url="http://www.baidu.com/"

show_status(url)

if __name__=="__main__":

main()

尊重个人努力,转载时请注明出处:http://blog.csdn.net/edward2jason/article/details/38379931

python模拟点击后获取状态码_Python获取网页状态码相关推荐

  1. 纯JavaScript二维码在线生成网页源码

    介绍: 纯JavaScript实现二维码生成的网页源码,各位技术爱好者可以拿去研究, 支持设置二维码的各项具体内容,适合专业人士使用. 网盘下载地址: https://zijiewangpan.com ...

  2. Python模拟登录某橙色软件并获取所有订单,康康买了啥奇奇怪怪的东西?

    温馨提示 现在宝换成了滑块验证了, 比较难解决这个问题,以下的代码没法用了, 仅作学习参考研究之用吧. 本篇内容 python模拟登录宝网页 获取登录用户的所有订单详情 学会应对出现验证码的情况 体会 ...

  3. python发送文件给微信好友_python获取天气接口给指定微信好友发天气预报

    先看下效果图: 用到的模块: PyMySQL requests threading wxpy 要实现上面的示例,首先是有两大块地方 获取天气信息 通过微信将天气信息发送出去 而获取天气信息又包括几个小 ...

  4. python获取当前年月日_Python获取、格式化当前时间日期的方法

    Python获取当前时间_获取格式化时间: Python获取当前时间: 使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点数),然后传递给 localtime 获取当前时间 #使 ...

  5. python 模拟键盘输入组合键_Python 模拟键盘输入

    Python 模拟键盘输入,留着备用. #coding=utf-8 import win32gui,win32api,win32con import time import threading def ...

  6. python生成二维码_python生成二维码的实例详解

    python生成二维码的实例详解 版本相关 操作系统:Mac OS X EI Caption Python版本:2.7 IDE:Sublime Text 3 依赖库 Python生成二维码需要的依赖库 ...

  7. python 模拟用户点击浏览器_python 模拟点击浏览器

    原标题:python 模拟点击浏览器 from selenium import webdriver #导入selenium的webdriver包,导入webdriver包后才能使用 webdriver ...

  8. python模拟一个简单的取款机_Python模拟自动存取款机的查询、存取款、修改密码等操作...

    1.工作流程 2.模拟自动存取款机的操作 代码如下: import msvcrt, sys, os #定义用星号隐藏密码输入的函数 def psw_input(): li = [] while Tru ...

  9. python模拟浏览器上传文件_Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)...

    http协议本身的原始方法不支持multipart/form-data请求,这个请求由原始方法演变而来的. multipart/form-data的基础方法是post,也就是说是由post方法来组合实 ...

  10. python状态码409_常见网页状态码

    2开头 (请求成功)表示成功处理了请求的状态代码. 200   (成功)  服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201   (已创建)  请求成功并且服务器创建了新的资源. ...

最新文章

  1. Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
  2. android程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决...
  3. npm install 因网络链接慢 卡住解决方法
  4. Netty源码分析第6章(解码器)----第4节: 分隔符解码器
  5. Spring框架的灵魂IOC和AOP
  6. MAC上最好用的免费全能音乐播放器VOX 2.6.5
  7. Elasticsearch 实例管理在京东的使用场景及演进之路
  8. MNIST 手写数字识别,我是如何做到886个可训练参数,识别率达到98.2%? (参数、模型压缩), Keras实现,模型优化
  9. 截取url的host_java正则表达式获取url的host示例
  10. python开发效率高吗_从运行效率与开发效率比较Python和C++
  11. 四则运算03(附第四周进度条)
  12. 手机桌面没有计算机图标,手机桌面图标不见了,更改桌面图标的大小-
  13. 分布式监控系统Zabbix--使用Grafana进行图形展示
  14. 无法装载这个对象_面试官:别的我不管,这个JVM虚拟机内存模型你必须知道
  15. C#与OC交互方法中的ong参数的兼容性问题
  16. Web前端学习 | Ajax
  17. html制作动物百科网站,Steam疯狂周三游戏推荐:动物百科全书
  18. word中插入罗马数字并且设置为Times New Roman字体
  19. u盘文件看得见却打不开_u盘文件夹打不开怎么办【图解】
  20. C语言程序设计笔记(浙大翁恺版) 第九周:指针

热门文章

  1. 假如你想成为一名测试工程师(程序员找茬师)
  2. 2021消防设施操作员(初级)岗位考试模拟题库燃烧基础部分
  3. 在每天一个故事中......
  4. macOS 更新后 Git 无法工作(xcrun: 错误:无效的活动开发者路径 (/Library/Developer/CommandLineTools)
  5. 2014、2015年国家级虚拟仿真实验教学中心入选名单
  6. python10个骚操作
  7. STM32 us精确延时方式
  8. SPOOL_INTERNAL_ERROR
  9. 一瓶OTC,药店被罚10万,原因是...
  10. 【SwiftUI模块】0007、SwiftUI新手指引-新手指示-聚光灯介绍说明