端口

  • 通讯过程

    • 获取IP
    • 数据发送到对方指定应用程序,为识别程序,对网络应用程序用数字进行标识,为了方便称呼这个数字,取名为端口,这里的端口我们一般叫做逻辑端口
    • 通讯,定义通讯规则,这个通讯规则我们称之为协议
  • 通讯协议

    • 国际组织定义通用的通信协议TCP/IP协议
    • 协议就是指计算机通讯网络中,两台计算机之间进行通信所必须共同遵守的规定或规则
    • HTTP叫做超文本传输协议 HTTP端口为80
  • 网络模型

    • 数据封包:应用层→表示层→会话层→传输层→网络层→数据链路层→物理层
    • 数据拆包:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层
    • 应用层:为数据添加独有的应用特征(数据封装)
    • 表示层:添加表现形式,继续封装
    • 会话层:继续封装
    • 传输层:TCP/IP封装
    • 网络层:IP地址
    • 数据链路层:定义在单个链路上如何传输数据,功能:帧编码和误差纠正控制
    • 物理层:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性,物理层确保原始的数据可在各种物理媒体上传输
  • TCP/IP参考模型

    • 应用层 表示层 会话层 统一为 应用层(http ssl)
    • 传输层为传输层 TCP
    • 网络层为网际层 IP
    • 数据链路层与物理层为主机至网络层
  • https

    • https=heep + ssl
    • ssl 是一个协议 主要用于web安全传输
    • http的升级版 更加安全
  • http请求与响应

    • http通信由两部分组成:客户端请求消息与服务器响应消息
    • 当⽤户在浏览器的地址栏中输⼊⼀个URL并按回⻋键之后,浏览器会向HTTP 服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种⽅法。
    • 当我们在浏览器输⼊URL http://www.baidu.com 的时候,浏览器发送⼀个 Request请求去获取 http://www.baidu.com 的html⽂件,服务器把 Response⽂件对象发送回给浏览器。
    • 浏览器分析Response中的 HTML,发现其中引⽤了很多其他⽂件,⽐如 Images⽂件,CSS⽂件,JS⽂件。 浏览器会⾃动再次发送Request去获取 图⽚,CSS⽂件,或者JS⽂件。
    • 当所有的⽂件都下载成功后,⽹⻚会根据HTML语法结构,完整的显示出来了。
  • 客户端的http请求

    • URL 只是识别资源的位置,而HTTP是用来提交和获取资源

    • 客户端发送http请求到服务器的请求消息,包括以下方面:

      • 请求⾏、请求头部、空⾏、请求数据
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      ⼀个典型的HTTP请求示例
      1 GET / HTTP/1.1
      2 Host: www.baidu.com
      3 Connection: keep-alive
      4 Cache-Control: max-age=0
      5 Upgrade-Insecure-Requests: 1
      6 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKi t/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36
      7 Sec-Fetch-Mode: navigate
      8 Sec-Fetch-User: ?1
      9 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,ima ge/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
      10 Sec-Fetch-Site: same-origin
      11 Referer: https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1& tn=baidu&wd=Python%20%20%E6%89%8B%E5%8A%A8%E5%9B%9E%E6%94%B6%E5%9 E%83%E5%9C%BE&oq=Python%2520%25E6%2594%25B6%25E5%2588%25B0%25E5%2 59B%259E%25E6%2594%25B6%25E5%259E%2583%25E5%259C%25BE&rsv_pq=f5ba abda0010c033&rsv_t=1323wLC5312ORKIcfWo4JroXu16WSW5HqZ183yRWRnjWHa eeseiUUPIDun4&rqlang=cn&rsv_enter=1&rsv_dl=tb&inputT=2315&rsv_sug 3=48&rsv_sug2=0&rsv_sug4=2736
      12 Accept-Encoding: gzip, deflate, br
      13 Accept-Language: zh-CN,zh;q=0.9
      14 Cookie: BIDUPSID=4049831E3DB8DE890DFFCA6103FF02C1;

爬虫简介

爬虫

  • 爬虫

    • 代替人进行模拟浏览器网页操作
  • 为什么需要爬虫

    • 为其他程序提供数据源
    • 数据分析
    • AI人工智能
  • 企业获得数据的方式

    • 公司自有数据
    • 第三方平台数据
    • 爬虫工程师获取数据
  • Python爬虫优势

    • PHP:对多线程、异步支持不太好
    • Java:代码量大,代码笨重
    • C/C++:代码量大。代码笨重
    • Python:支持多模块。代码简洁。开发效率高 scrapy框架
  • 爬虫分类

    • 通用网络爬虫:传统搜索引擎
    • 聚焦式:根据既定目标有选择的抓取某一特定主体内容
    • 增量式:针对更新和只爬取新生产或发生变化的网页爬虫
    • 深层网络爬虫:不能通过静态链接获取的,隐藏在搜索表单后的,只有用户提交一些关键词才能获得的web。例如用户登录注册才能访问的页面

几个概念

  • get与post

    • GET:查询参数都会在URL中显示出来
    • POST:查询参数和需要提交数据实在隐藏Form表单里,不会在URL地址显示
  • URL组成部分

    • URL:统一资源定位符
    • https://new.qq.com/omn/20201013/20201013A0F25P00.html
      • https网络协议
      • new.qq.com 主机名
      • omn/20201013/20201013A0F25P00.html 访问路径
      • 锚点
    • User-Agent 用户代理,记录用户浏览器。操作系统为了让用户获得更好的html页面效果
    1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
    • refer 表明当前请求是从哪个URL拿来的
    1
    Referer: https://new.qq.com/
    • 状态码
      • 200:请求成功
      • 301:永久重定向
      • 302:临时重定向
      • 404:请求失败
      • 500:服务器内部请求
    • 抓包工具
      • elements 元素
      • console 控制台
      • sources 信息源 整个网站加载的文件
      • network 网络工作 网络请求记录