爬虫的一些基本知识(1)

  1. 完成一个爬虫的制作的基本过程

  • 分析需求:就是我们需要在网页中爬取什么内容。
  • 分析网站:根据需求在网站上找到相应的资源。
  • 获取源码:requests包来获取,注意返回的response的各个属性的类型、编码。
  • 匹配资源:用正则表达式匹配目的资源的url。
  • 存储资源:将获取的资源以正确的格式存放。

   2. 与爬虫有关的基础知识

  • 正则表达式
  1. 正则表达式的基本符号
      • ^ :必须以 ^ 之后的字符为开头,如 ^a 表示必须以a为开头。
      • $ :必须以 $ 之前的字符为结尾,如 3$ 表示必须以数字3为结尾。
      • .  :代表任意字符,换行符除外,若后面加入re.S则也能代表换行符。
      • * :表示 * 之前的字符可以重复任意多次。+ :表示 + 前面的字符可以重复至少一次
      • + :表示 + 之前的字符可以重复至少一次。
      • ? :匹配前面的字符0或1次,也表示非贪婪模式。一般跟 .*? 组合使用。
      • {x} :表示限定该符号之前的字符可以重复的次数为 x 次
      • {x,} :表示限定该符号之前的字符可以重复的次数大于等于x次。
      • {x,y} :表示限定该符号之前的字符可以重复的次数为大于等于 x 次而小于等于 y 次。
      • :表示或,用于有多种表示方式的时候,如 a|b 表示可能出现a,b两种情况,任意一个满足即可匹配。
      • [ ] :表示 [ ] 内的内容任意一个满足即可匹配。
      • \ : 将普通字符转化为特殊字符或者解除特殊字符的功能。
      • \s :代表空格。
      • \S :代表非空格。
      • \w :代表匹配任意Unicode字符。
      • \W :不为 \w 即可。
      • \d :代表数字
      • [\u4E00-\u9FA5] :代表汉字,如果要匹配一串汉字,则中间不能有空格。
      • ( ) :作为子内容提取,一般我们需要留下的内容要放到括号里,比如我们要从一串字符串中提取数字,则(\d+)
     2.贪婪模式与非贪婪模式

  • 贪婪模式:匹配尽可能多的字符,不声明的情况下默认为贪婪模式。
  • 非贪婪模式:匹配尽可能少的字符。
编码格式

     ASCII

    计算机存放数据以及处理数据都是用的二进制0和1,所以最先出现的编码格式为ASCII码,该码只能表示128个字符

    GB2312

    用ASCII编码处理中文是不够的,因为中文有6000多个汉字,于是中国在ASCII编码的基础上进行了扩展制定了GB2312编码,用两个字节表示一个汉字。

    GBK

    是对GB2312编码的简单扩展。

    GB18030

    由于中国是多民族国家,许多民族有其自己的文字,所以在GB2312的基础上进行了扩展,制定了GB18030编码。

    Unicode

    由于世界上的每个国家都制定了自己的编码标准,所以ISO为了方便,制定了Unicode编码(字符集),将全世界上的所有符号都放了进来,Unicode为定长编码,采用的是16位比特编码。

    UTF

    这样有可能浪费内存资源,于是UTF编码出现了,采用每次用8位或者16位比特进行传输,分别为UTF-8和UTF-16


encode( )跟decode( )方法
    这两个函数都是字符串的函数,字符串在python中是用Unicode编码的,所以在做编码转换的时候,要将Unicode作为中间编码,先将其他编码decode成Unicode编码,再将Unicode编码encode成目标编码

decode( ) : 将其他类型的编码转换成Unicode编码。如str1.decode('gb2312') 表示将gb2312类型编码的字符串解码为Unicode类型。

encode( ) : 将Unicode类型的编码编码成其他类型的编码。入str1.encode('gb2312') 表示将Unicode类型的字符串str1编码为gb2312

  • requests包

  • requests.get(url,params) :最常用的一个方法,获取网页源代码,返回一个response对象,该对象里面有多种属性,state_code,url,content,headers等等,可以调用显示。

暂且整理这部分基础知识。

猜你喜欢

转载自blog.csdn.net/Noob_coder_JZ/article/details/79837537
今日推荐