一、爬虫基础知识(入门)

1、爬虫的概述

1.1 数据的来源

  • 去第三方的公司购买数据(比如企查查)
  • 去免费的数据网站下载数据(比如国家统计局)
  • 通过爬虫爬取数据
  • 人工收集数据(比如问卷调查)
  • 收集的自己用户信息

1.2 爬取到的数据用途

  • 进行在网页或者是app上进行展示
  • 进行数据分析或者是机器学习相关的项目

1.3什么是爬虫

  网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

1.4爬虫的用途

  • 网络投票
  • 12306抢票
  • 新闻网站

2、爬虫的分类和爬虫的流程

2.1 爬虫的分类

根据被爬网站的数量的不同,我们把爬虫分为:

  • 通用爬虫 :通常指搜索引擎的爬虫(https://www.baidu.com
  • 聚焦爬虫 :针对特定网站的爬虫

2.2爬虫的工作流程

在这里插入图片描述

  • 向起始url发送请求,并获取响应
  • 对响应进行提取
  • 如果提取url,则继续发送请求获取响应
  • 如果提取数据,则将数据进行保存

2.3 robots协议

  Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是互联网中的一般约定。
例如:淘宝的robots协议(不能抓取某件商品的具体详情)

3、HTTP和HTTPS的学习

3.1 http和https的概念

  • HTTP
    超文本传输协议
    默认端口号:80
  • HTTPS
    HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
    默认端口号:443

  HTTPS比HTTP更安全,但是性能更低

3.2 http请求的过程

  • 浏览器先向地址栏中的url发起请求,并获取响应
  • 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  • 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
  • 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

3.3 注意:

  • 但是在爬虫中,爬虫只会请求url地址,拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等),浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

3.4 HTTP常见请求头

  • Host (主机和端口号)
  • Connection (链接类型)
  • Upgrade-Insecure-Requests (升级为HTTPS请求)
    - User-Agent (浏览器名称)
  • Accept (传输文件类型)
    - Referer (页面跳转处)
  • Accept-Encoding(文件编解码格式)
    - Cookie (Cookie)
    - x-requested-with :XMLHttpRequest (表示该请求是Ajax异步请求)

3.5 HTTP重要的响应头

  • Set-Cookie (对方服务器设置cookie到用户浏览器的缓存)
  • 在响应中可以set多次cookie,
  • 客户端最多可以保存20条cookie

3.6 响应状态码(status code)

常见的状态码:

  • 200:成功
  • 302:临时转移至新的url
  • 307:临时转移至新的url
  • 404:找不到该页面
  • 500:服务器内部错误
  • 503:服务不可用,一般是被反爬

4、字符串的相关学习

4.1 字节和字符的含义
  • “字节”是一个8位的物理存贮单元。
  • “字符”是一个文化相关的符号。
  • 一个汉字算两个英文字符
    在UNICODE 中,一个字符就是两个字节
4.2 UTF

  UNICODE 如何在网络上传输也是一个必须考虑的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF8就是每次8个位传输数据,而UTF16就是每次16个位,只不过为了传输时的可靠性,从UNICODE到UTF时并不是直接的对应,而是要过一些算法和规则来转换。

  • UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是1,2,3个字节
4.3 字符和字符集
  • 字符(Character) 是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合
  • 字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等
4.4 ascll 和 unicode
  • "Ascii"编码(American Standard Code for Information Interchange,美国信息互换标准代码)。当时世界上所有的计算机都用同样的ASCII方案来保存英文文字。
  • unicode编码:国际标准化组织(iso)为了编码在全世界通用,搞出了包括地球上所有文化、所有字母和符号的编码!他们打算叫它"Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称 “UNICODE”。
  • ASCII编码:是1个字节(半角),而Unicode编码通常是2个字节,支持显示英文。

5、 str和bytes类型的互相转换:

  • str 使用encode方法转化为 bytes。
  • bytes 通过decode转化为 str。
    编码方式解码方式必须一样,否则就会出现乱码

猜你喜欢

转载自blog.csdn.net/weixin_42633359/article/details/84873297
今日推荐