zoukankan      html  css  js  c++  java
  • 爬虫基础(1)

    1. 什么是爬虫(重点掌握)

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

    原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做.

    2.爬虫的分类

    通用爬虫:通常指搜索引擎的爬虫

    聚焦爬虫:针对特定网站的爬虫

    3. robots协议

    Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是道德层面上的约束.例如:淘宝的robots协议

    4. http和https的概念(掌握)

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

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

    5. 浏览器发送HTTP请求的过程(重点理解)

    浏览器会主动请求js,css等内容,js会修改页面的内容,js也可以重新发送请求,最后浏览器渲染出来的内容在elements中,其中包含css,图片,js,url地址对应的响应等。

    但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应

    浏览器渲染出来的页面和爬虫请求的页面并不一样

    所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

    6. url的形式

    url的形式:scheme://host[:port#]/path/…/[?query-string][#anchor]

    7. HTTP常见请求头

    1. Host (主机和端口号)
    2. Connection (链接类型)
    3. Upgrade-Insecure-Requests (升级为HTTPS请求)
    4. User-Agent (浏览器名称),告诉对方服务器是什么客户端正在请求资源,爬虫中模拟浏览器非常重要的一个手段
    5. Accept (传输文件类型)
    6. Referer (页面跳转处)
    7. Accept-Encoding(文件编解码格式)
    8. Cookie (Cookie),获取只有登录后才能爬取的数据
    9. x-requested-with :XMLHttpRequest (是Ajax 异步请求)

    8.常见的请求方法

    • GET
    • POST

    get请求和post请求的区别可以参w3school

    9.响应状态码(status code)

    常见的状态码:

    • 200:成功
    • 302:临时转移至新的url
    • 307:临时转移至新的url
    • 404:not found
    • 500:服务器内部错误

    10.爬虫的流程

    url -- > 发送请求,获取响应---->提取数据--->保存 获取响应 -->提取url地址,继续请求.

    11.字符串的相关知识

    11.1. Unicode UTF8 ASCII的补充

    字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等

    字符集(Character set)是多个字符的集合

    字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等

    ASCII编码是1个字节,而Unicode编码通常是2个字节。

    UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是1,2,3个字节

    11.2.python中的字符串

    python3中两种字符串类型:

    • str : unicode的呈现形式

    • bytes :字节类型,互联网上数据的都是以二进制的方式(字节类型)传输的

    使用方法:

    • str 使用encode方法转化为 bytes
    • bytes 通过decode转化为 str

    编码方式解码方式必须一样,否则就会出现乱码

    python2中字符串有两种类型

    • unicode类型
    • 字节类型

    在Python2中,字符串无法完全地支持国际字符集和Unicode编码。为了解决这种限制,Python2对Unicode数据使用了单独的字符串类型。要输入Unicode字符串字面量,要在第一个引号前加上'u'。

    Python2中普通字符串实际上就是已经编码(非Unicode)的字节字符串。

    • 字节类型通过decode转化为unicode类型
    • unciode类型通过encode方法转化为字节类型
    • 方法的使用和python3相同,但是在方法中默认的编解码方式为ascii,对中文需要手动指定为utf-8

    总结:

    • python2

      • 字节类型:str,字节类型,通过decode()转化为unicode类型
      • unicode类型:unicode ,通过encode转化为str字节类型
    • python3

      • str:unicode,通过encode() 转化为bytes
      • bytes:字节类型,通过decode()转化为str类
  • 相关阅读:
    04-修改域控的操作主机(主备切换)
    03-域控上删除组织单位的错误
    02-搭建域控的从节点
    01-域控服务器的搭建
    06-"Login failed for user 'NT AUTHORITYSYSTEM'. 原因: 无法打开明确指定的数据库。[客户端:<local machine>]"异常处理
    04-数据库范式
    9-系统交互式登录无需按Ctrl+Alt+Del的策略启用
    05-拒绝了对对象'server'的VIEW SERVER STATE权限
    37-SQLServer的审核/审计功能介绍
    微信小程序 设置计时器(setInterval)、清除计时器(clearInterval)
  • 原文地址:https://www.cnblogs.com/yinjiangchong/p/9400270.html
Copyright © 2011-2022 走看看