01 爬虫的起步

目录

  1. 通讯协议
    • 端口
    • 通讯协议
  2. 网络模型
  3. 爬虫介绍
    • 什么是爬虫
    • 爬虫的分类
  4. 几个概念
    • GET和POST
    • URL的组成
    • User-Agent 用户代理
    • Referer
    • 状态码
  5. 抓包工具

1.通讯协议

1.1 端口

数据通讯分几步? e.g.用小a的QQ找小b的QQ

  • 1. 找到对方ip
  • 2. 数据要发送到对方指定的应用程序上(e.g.QQ)。为了标识这些应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这个数字,叫做端口。这里的端口 我们一般都叫做 '逻辑端口'
  • 3. 定义通讯规则。这个通讯规则我们一般称之为协议
1.2 通讯协议
  • 国际组织定义了通用的通信协议 TCP/IP协议。
  • 协议:计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
  • HTTP又叫做超文本传输协议(是一种通信协议)HTTP 端口是 80

2. 网络模型

image.png

后期更新了新的参考模型 TCP/IP参考模型

image.png
2.1 HTTPS是什么呢?
  • https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的。
  • https,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。
2.2 SSL怎么理解?
  • SSL也是一个协议主要用于web的安全传输协议。
image.png

3. 爬虫介绍

3.1 什么是爬虫?
  • 简单一句话就是代替人去模拟浏览器进行网页操作
3.2 为什么需要爬虫?
  • 为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、大数据等等
3.3 企业获取数据的方式?
  • 1.公司自有的数据
  • 2.第三方平台购买的数据 (百度指数、数据堂、贵阳大数据交易所)
  • 3.爬虫爬取的数据
3.4 Python 做爬虫的优势

2010 PC端的互联网->2015 移动互联网-> 大数据的互联网时代(现在进行时)->人工智能(将来时)

  • PHP : 对多线程、异步支持不太好
  • Java : 代码量大,代码笨重
  • C/C++ : 代码量大,难以编写
  • Python : 支持模块多、代码简介、开发效率高 (scrapy框架)
3.5 爬虫的分类
  • 通用网络爬虫 例如 baidu google yahu

方法一:网页后面加/robots.txt,例如百度 可以见到所用的user-agent,还有不允许爬取的目录-->都遵循robots协议
方法二:点击随便一个搜索结果的”了解详情”-->百度搜索资源平台

  • 聚焦网络爬虫: 根据既定的目标有选择的抓取某一特定主题内容
  • 增量式网络爬虫: 指对下载网页采取增量式的更新和只爬行新产生的或者已经发生变化的网页爬虫
  • 深层网络爬虫: 指那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的web页面,例如 用户登录注册才能访问的页面

4. 几个概念

4.1 GET和POST
  • GET : 查询参数都会在URL上显示出来。从服务器获取数据&不会对服务器产生任何影响。


    image.png

    OR


    image.png

上例中能看到关键字(wd=后)变为16禁制编码

  • POST : 查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来。<--会对服务器资源产生影响
    image.png
4.2 URL组成部分
  • URL: 统一资源定位符
    例子:https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
  • https: 协议
  • new.qq.com: 主机名可以将主机理解为一台名叫 news.qq.com 的机器。这台主机在 qq.com 域名
  • port 端口号: 80 /new.qq.com 在他的后面有个 :80 可以省略
  • TWF20200/TWF2020032502924000.html 访问资源的路径
  • #anchor: 锚点用前端在做页面定位的
    image.png

注意 : 在浏览器请求一个url,浏览器会对这个url进行一个编码。(除英文字母、数字和部分标识其他的全部使用% 加 十六进制码进行编码)

  • 例如 : https://tieba.baidu.com/f?ie=utf-8&kw=%E6%B5%B7%E8%B4%BC%E7%8E%8B&fr=search
  • %E6%B5%B7%E8%B4%BC%E7%8E%8B = 海贼王
4.3 User-Agent 用户代理
  • 作用:记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果。

实操应用:爬虫时遇到反爬,加上headers=user-agent

User-Agent:

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

  • Mozilla Firefox:(Gecko内核-->渲染页面)
4.4 Refer
  • 表明当前这个请求是从哪个url过来的。一般情况下可以用来做反爬的技术。e.g.当爬取求职网页信息时,表明用户是从主页过来的,不是机器人。

可以在network->request header中找到referer

4.5 状态码
  • 200 : 请求成功
  • 301 : 永久重定向

    image.png

  • 302 : 临时重定向

    image.png

  • 403 : 服务器拒绝请求
  • 404 : 请求失败(服务器无法根据客户端的请求找到资源(网页))
  • 500 : 服务器内部请求

5. 抓包工具

image.png
  • Elements : 元素。网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的)

    image.png

  • Console : 控制台 (打印信息)
    和PyCharm一样

  • Sources : 信息来源 (整个网站加载的文件,包括网页源代码)
    但是这是网页第一遍的请求->空架子->不能收集到动态信息e.g.招聘网上具体职位信息。

  • NetWork : 网络工作(信息抓包) 能够看到很多的网页请求

反爬技巧:1. 加上headers= user-agent 2. 加上refer

你可能感兴趣的:(01 爬虫的起步)