Python网络爬虫(一. 基础了解)

爬虫概述:

1. 概念

模拟浏览器, 发送请求, 获取响应

模拟客户端(浏览器)发送网络请求,接收请求响应

2. 分类

  1. 根据被爬取网站的数量不同
    1. 通用爬虫(搜索引擎)
    2. 聚焦爬虫(有目标网站)

是否以获取数据为目的

  1. 功能性爬虫(投票)

  2. 数据增量爬虫(招聘信息收集)

  3. 根据url地址和对应的页面内容是否改变,数据增量爬虫又可分类

    1. url变,内容变
    2. url不变,内容变(更新)

3.作用

  1. 数据采集
  2. 软件测试
    1. selenium
  3. 12306抢票
  4. 网站上投票
  5. 网络安全
    1. 短信轰炸
    2. web漏洞扫描

4.流程

  1. url_list
  2. 发送请求,获取响应
  3. 解析响应
  4. 提取url(1) / (提取数据)保存数据

http协议:

1.http 和 https(HTTP+SSL)

2. 请求头与响应头:

  1. 请求头

    1. host : 域名
    2. Connection(链接类型) : 长链接
    3. Upgrade-Insecure-Requests : 升级为https请求
    4. User-agent : 用户代理,提供系统信息和浏览器信息
    5. Referer : 页面跳转处,防盗链(图片/视频)
    6. Cookie : 状态保持
  2. 响应头

    1. Set-Cookie : 对方服务器设置cookie到用户浏览器的缓存

Content-Type : 请求类型

常见响应状态码:

所有的状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准

network 中抓包得到的源码才是判断依据,elements中的源码时渲染之后的源码,不能作为判断标准

  1. 200 成功
  2. 302 跳转,新的url在响应的Location头中给出
  3. 303 浏览器对POST请求进行重定向至新的url
  4. 307 浏览器对与GET的响应重定向至新的url
  5. 403 资源不可用;服务器理解客户请求,但拒绝处理它(没有权限)
  6. 404 找不到页面
  7. 500 服务器内部错误
  8. 503 服务器由于维护或负载过重未能应答6,在响应中可能会携带Retry-After响应头;有可能是因为爬虫频繁访问url, 是服务器忽视爬虫的请求返回503响应状态码

浏览器请求的过程:

1. 浏览器

​ 发送所有请求,进行渲染

2. 爬虫

​ 只发送指定请求,不会渲染

  1. 骨骼文件 : html静态文件
  2. 肌肉文件 : js / ajax请求
  3. 皮肤 : css / font / 图片

抓包过程:

根据发送请求的流程分别在骨骼/肌肉/皮肤响应中查找数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值