欢迎光临
我们一直在努力

Python第六弹:python爬虫篇:什么是爬虫

一、爬虫的概念

1.1 什么是爬虫?

网络爬虫(又称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器),发送网络请求,接收请求响应,一种按照一定规则,自动抓取互联网数据的程序。

  • 原则上,只要是客户端(浏览器)的事情,爬虫都能够做。
  • 爬虫也只能获取客户端(浏览器)所展示出来的数据。

简而言之,爬虫就是模拟客户端,发送请求,获取响应。

1.2 爬虫的作用

爬虫在互联网世界中有很多作用。

1.2.1 数据采集

  • 抓取微博评论(机器学习与舆情监控)
  • 抓取招聘网站的招聘信息(数据分析、挖掘)
  • 新浪滚动新闻
  • 百度新闻网站
  • 1.2.2 软件测试

    • 爬虫之自动化测试
    • 虫师

    1.2.3 12306抢票

    1.2.4 网络上的投票

    • 投票网

    1.2.5 网络安全

    • 短信轰炸

    • web页面漏洞检查

    二、爬虫的分类

    2.1 根据被爬网站数量的不同

    • 通用爬虫:如:搜索引擎
    • 聚焦爬虫:例如12306抢票软件

    2.2 根据是否以获取数据为目的

    • 功能性爬虫:给你喜欢的明星点赞,投票
    • 数据增量爬虫:比如招聘信息。

    2.3 根据URL和对应的页面内容是否改变,数据增量爬虫可以分为:

    • 基于URL变化,内容也随之变化的数据增量爬虫
    • URL不变,内容变化的数据增量爬虫。流入:页面的浏览次数统计

    三、爬虫的流程

  • 获取URL
  • 向URL发送请求,并且获取响应数据(需要http请求)
  • 如果从响应中获取URL,则继续发送请求获取数据
  • 如果从响应中提取数据,则进行数据保存。
  • 四、http协议复习

    4.1 http和https概念

    https比http更安全,但是性能低一些。

    • HTTP是超文本传输协议,默认端口80

            超文本:是指超过文本,不仅限于文本,还包括图片、音频、视频等文件;

            输出协议:是指使用共同约定的固定格式来传输转换为字符串的超文本内容。

    • HTTPS:HTTP+SSL(安全套接字层),即带有安全套接字层的超文本传输协议,默认端口:443。SSL层对传输的内容(超文本,也就是请求或者响应)进行加密。
    • 可以打开浏览器访问一个URL,右键检查/开发者工具,点击network,点击一个URL,查看HTTP协议的格式。

    4.2 爬虫特别关注的请求头或者响应头

    4.2.1 请求头字段

    字段 含义
    host 域名
    Connection 长连接
    Upgrade-Insecure-Requests 升级为Https请求
    User-Agent 提供系统信息和浏览器信息
    Referer 页面跳转处,防盗链(音乐、视频)
    Cookie 状态保持
    Authrazition 表示HTTP协议中需要认证资源的认证信息,例如web课程中用于jwt认证

    加粗的请求头,被用来进行爬虫识别的几率最高。

    相较于其他请求头更为重要。

    4.2.2 响应头

    bdpagetype
    1
    bdqid
    0x848f948b0002b969
    connection
    keep-alive
    content-encoding
    gzip
    content-type
    text/html; charset=utf-8
    date
    Mon, 18 May 2026 07:51:09 GMT
    p3p
    CP=" OTI DSP COR IVA OUR IND COM "
    p3p
    CP=" OTI DSP COR IVA OUR IND COM "
    server
    BWS/1.1
    set-cookie
    BAIDUID=2C4E91C0A913B809733D19D7584E7B05:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    set-cookie
    BIDUPSID=2C4E91C0A913B809733D19D7584E7B05; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    set-cookie
    PSTM=1779090669; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    set-cookie
    BAIDUID=2C4E91C0A913B8095185171236A6AC17:FG=1; max-age=31536000; expires=Tue, 18-May-27 07:51:09 GMT; domain=.baidu.com; path=/; version=1; comment=bd
    set-cookie
    BDSVRTM=3; path=/
    set-cookie
    BD_HOME=1; path=/
    strict-transport-security
    max-age=172800
    tr_id
    super_0x848f948b0002b969
    traceid
    177909066905063237229552016659397654889
    transfer-encoding
    chunked
    x-ua-compatible
    IE=Edge,chrome=1
    x-xss-protection
    1;mode=block

    爬虫只关注一个响应头: Set-Cookie

    字段 含义
    Set-Cokkie 对方服务器设置cookie到用户浏览器的缓存

    4.3 常见的状态码

    HTTP常见的状态码

    状态码 含义
    200 成功
    302 跳转,新的URL在响应头的Location提供
    303 浏览器对于POST的响应进行重定向至新的URL
    307 浏览器对于GET请求重定向至新的URL
    403 资源不可用,服务器理解客户请求,但是拒绝执行它
    404 找不到该页面
    500 服务器内部错误
    503 服务器由于维护或者负载过重,在响应头中可能包含Retry-After响应头。有可能因为爬虫频繁访问URL,是服务器忽略爬虫请求,最终返回503的响应状态码。

    状态码是服务器给浏览器的真实反馈。可能服务器的开发人员或者运维人员为了阻止数据被爬虫人员获取,可能在状态码上做手脚,也就是说状态码不一定是服务器的真实状态。

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

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

    4.4 浏览器运行流程

    4.4.1 http请求流程

  • 浏览器拿到域名对应的IP后,现象地址栏的URL发起请求,并获取响应。
  • 在返回的响应内容(HTML)中,会带有js、css、图片等URL地址,以及ajax代码。浏览器按照响应中的顺序,依次发送其它请求,获取响应的响应。
  • 渲染:浏览器每获取一个响应,就对展示出的结果进行添加(加载),js,css内容会修改页面的内容,js也可以重新发送请求,获取响应。
  • 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的内容中进行添加或者修改,这个过程就叫做浏览器的渲染。
  • 4.4.2 爬虫的请求过程

    但是在爬虫中,爬虫只会请求URL地址,拿到URL地址对应的响应(该相应的内容可以是html\\css 、js、图片等)。

    浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样。因为爬虫不具备渲染能力。

    区别:

    浏览器发送所有请求,进行渲染;

    爬虫只发送请求,不会渲染。

    HTML页面:静态页面。骨骼文件

    JS文件/AJAX文件:肌肉文件

    CSS文件/字体文件/图片等:皮肤文件

    抓包过程:

    根据发送的请求流程,分别在HTML、JS、CSS文件响应中查找数据。

    爬虫是对关键请求进行分析。

    赞(0)
    未经允许不得转载:171主机测评 » Python第六弹:python爬虫篇:什么是爬虫
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址