写一个最简单的爬虫
先介绍,我的环境:
Ubuntu:18.04(64位)
IDE(解释为开发环境,用什么写的)
Python3.6
注意Python2.X 和Python3.X有些语法问题,看情况而定
爬虫网站为'http://www.xiaozhu.com/'
前面说过了request请求,response响应,OK第一个爬虫完成了,是不是很简单.不说这么多了上代码.看看效果.这个爬虫只是请求的网页<HTML>
import requests
#导入相应的包文件
headers={
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36'
}
#加入请求头
respones =requests.get('https://bj.xiaozhu.com/','headers=headers')
#输入网址发送请求
print(respones)
#请求得到响应,请求成功
得到:'<Response [200]>',这个是什么?说明访问成功.
-
这里就需要咱们要知道些什么了,访问是否成功,返回数值为状态码什么意思?
1XX(信息类)
该类型状态码表示接收到请求并且继续处理。
-
100,客户端必须继续发出请求。
-
101,客户端要求服务器根据请求转换HTTP协议版本。
2XX(响应成功)
该类型状态码表示动作被成功接收、理解和接受。
-
200,表明该请求被成功地完成,所请求的资源发送到客户端。
-
201,提示知道新文件的URL。
-
202,接受并处理,但处理未完成。
-
203,返回信息不确定或不完整。
-
204,收到请求,但返回信息为空。
-
205,服务器完成了请求,用户必须复位当前已经浏览过的文件。
-
206,服务器已经完成了部分用户的GET请求。
3XX(重定向类)
该类型状态码表示为了完成指定的动作,必须接受进一步处理。
-
300,请求的资源可在多处获得。
-
301,本网页被永久性转移到另一个URL。
-
302,请求的网页被重定向到新的地址。
-
303,建议用户访问其他URL或访问方式。
-
304,自从上次请求后,请求的网页未修改过。
-
305,请求的资源必须从服务器指定的地址获得。
-
306,前一版本HTTP中使用的代码,现已不再使用。
-
307,声明请求的资源临时性删除。
4XX(客户端错误类)
该类型状态码表示请求包含错误语法或不能正确执行。
-
400,客户端请求有语法错误。
-
401,请求未经授权。
-
402,保留有效ChargeTo头响应。
-
403,禁止访问,服务器收到请求,但拒绝提供服务。
-
404,可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。
-
405,用户在Request-Line字段定义的方法不被允许。
-
406,根据用户发送的Accept,请求资源不可访问。
-
407,类似401,用户必须首先在代理服务器上取得授权。
-
408,客户端没有在用户指定的时间内完成请求。
-
409,对当前资源状态,请求不能完成。
-
410,服务器上不再有此资源。
-
411,服务器拒绝用户定义的Content-Length属性请求。
-
412,一个或多个请求头字段在当前请求中错误。
-
413,请求的资源大于服务器允许的大小。
-
414,请求的资源URL长于服务器允许的长度。
-
415,请求资源不支持请求项目格式。
-
416,请求中包含Range请求头字段,在当前请求资源范围内没有range指示值。
-
417,服务器不满足请求Expect头字段指定的期望值。
5XX(服务器错误类)
该类型状态码表示服务器或网关错误。
-
500,服务器错误。
-
501,服务器不支持请求的功能。
-
502,网关错误。
-
503,无法获得服务。
-
504,网关超时。
-
505,不支持的http版本。