爬虫的流程和常见状态码

1 定义

爬虫(网络数据采集)是指自动抓取互联网信息的脚本或者程序,换句话说,是指按照程序员的想法,由程序员自定义规则编写程序批量的爬取数据(图片、音频、视频、数据等)。

2 爬虫流程

  1. 解析HTML页面。
  2. 根据前端的语法或者正则表达式提取数据。
  3. 保存数据。

3 爬虫常使用的请求库

爬虫常使用的请求库有requests、urllib、selenium等。

  • urllib:一系列用于操作URL的功能。
  • requests:基于urllib编写的,阻塞式HTTP请求库,发出一个请求,一直等待服务器响应后,程序才能进行下一步处理。
  • selenium:自动化测试工具。一个调用浏览器的driver,通过这个库可以直接调用浏览器完成某些操作,比如输入验证码。

4 常见状态码status_code

状态码是用来判断服务器和网页的状态的。

  • 200
    表示程序和服务器正常通信。

  • 301
    HTTP 301 永久重定向说明请求的资源已经被移动到了由 Location 头部指定的url上,是固定的不会再改变。搜索引擎会根据该响应修正。

  • 302
    HTTP 302 Found 重定向状态码表明请求的资源被暂时移动到了由Location 头部指定的 URL 上。浏览器会重定向到这个URL, 但是搜索引擎不会对该资源的链接进行更新 (In SEO-speak, it is said that the link-juice is not sent to the new URL)。

  • 304
    客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified。

  • 307
    即请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
    307错误

  • 401

    状态码 401 Unauthorized 代表客户端错误,指的是由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。

  • 403

    状态码 403 Forbidden 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。

  • 404

    状态码 404 Not Found 代表客户端错误,指的是服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理(link rot)页面。网页丢失。

  • 410
    被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。
    410错误

  • 418
    这就是个玩笑。IETF在1998年愚人节时发布的一个笑话RFC。超文本咖啡壶控制协议。
    htcpcp1.0协议中的418的意义是:当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。

  • 451
    因法律原因不可用,当用户请求访问某个经政府审核等查核方法后认定不合法的来源时,就会显示这个错误代码。
    451错误

  • 500

    服务器内部错误Internal Server Error,服务器崩溃。

  • 502

    代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway

  • 503

    服务不可用,临时服务器维护或过载,服务器无法处理请求。

  • 504

    网关超时。

一个请求小荔枝:

import requests

URL='https://www.bilibili.com'
# 向b站发送请求,获取b站服务器的响应结果
response=requests.get(url=URL)
#输出状态码
print(response.status_code)

#response.encoding='gbk',页面是什么编码方式就改成什么。
#text: 页面源代码(字符串类型)
print(response.text, type(response.text))
# content:页面源代码(二进制形式(字节))
# print(response.content)

如果网页发生乱码,只需要根据页面指定编码方式解码即可。
requests默认使用ISO-8859-1的编码(ASCII), 其也能够使用页面服务器所指定的编码方式。

如果页面中没有charset='编码'怎么办:response.encoding=None

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值