菜单

第3段 爬虫基础知识回顾

2018年10月12日 - 一点资讯

艺选型

Scrapy VS requests+beautifulsoup

  1. requests和bs都是库,Scrapy是框架。
  2. scrapy框架可以入requests和bs。
  3. scrapy是依据twisted,性能是极度特别之优势。
  4. scrapy方便扩展,提供了广大放到的效能。
  5. scrapy内置的css和xpath selector非常好,bs最老的败笔就是是慢性

爬虫能做啊?

  1. 检索引擎—-百度过、google、垂直领域寻找引擎
  2. 引进引擎—-今日头久、一点资讯
  3. 机械上的数额样本
  4. 数据解析(如金融数据解析)、舆情分析。

正则表达式

  1. 特殊字符 (原始字符串’booby123’)

    ^ 开头    '^b.*'----以b开头的任意字符
    
    $ 结尾    '^b.*3$'----以b开头,3结尾的任意字符
    
    * 任意长度(次数),≥0       
    
    ? 非贪婪模式,非贪婪模式尽可能少的匹配所搜索的字符串 '.*?(b.*?b).*'----从左至右第一个b和的二个b之间的内容(包含b)
    
    + 一次或多次
    
    {2} 指定出现次数2次
    
    {2,} 出现次数≥2次
    
    {2,5} 出现次数2≤x≤5
    
    | 或     例如,“z|food”能匹配“z”或“food”(此处请谨慎)。“[z|f]ood”则匹配“zood”或“food”或"zood"。
    

    .

    [] 中括号中任意一个符合即可(中括号里面没有分转义字符)   '[abc]ooby123'----只要开头符合[]中任意一个即可
    
    [^] 只要不出现[]的即可
    
    [a-Z] 从小a到大Z        '1[48357][0-9]{9}'----电话号码
    
    . 任意字符
    

    .

    \s 匹配不可见字符 \n \t    '你\s好'----可以匹配‘你 好’
    
    \S 匹配可见字符,即普通字符
    
    \w 匹配下划线在内的任何单词字符
    
    \W 和上一个相反
    

    .

    [\u4E00-\u9FA5] 只能匹配汉字
    
    () 要取出的信息就用括号括起来
    
    \d 数字
    
  2. 正则表达式的用

    稍,上网练习

网页分类

  1. 静态网页
  2. 动态网页
  3. webservice(restapi)

深度优先和广度优先

  1. 网站的养结构
  2. 纵深优先算法和贯彻—-递归
  3. 广度优先算法和落实—-队列

爬虫去重新策略

  1. 以访问过的url保存至数据库中。
  2. 拿造访了之url保存到set中,只要o(1)【这是常数阶时间复杂度】的代价就是可以查询url

    100000000x2bytex50独字符/1024/1024/1024≈9G 一亿长达数据,一长长的50字符

  3. url经过md5等艺术哈希后保存及set中(比较一点资讯常用)

  4. ……..

字符串编码

  1. 处理器只能识别数字,文本转换为数字才会处理。计算机中8只bit作为一个字节,所以一个字节约表示最好可怜之数字就是255.
  2. 电脑是美国总人口申的,所以一个字节可以表示拥有字符了,所以ASCII(一个字节)编码就成为美国人专业编码。
  3. 而ASCII处理中文明显是不够的,中文不止255只字,所以中国制订了GB2312编码,用有限个字节表示一个汉字。GB2312还把ASCII包含进去了,同理,日文,韩文等等上百只邦以缓解者题材就还发展了同等效仿字节的编码,标准虽逾多,如果出现多种语言混合就必定会现出乱码。
  4. 于是unicode出现了,将装有语言统一到均等法编码里。
  5. ASCII和unicode编码:

    (1)字母A用ASCII编码十进制65,二迈入制01000001

    (2)汉字‘中’已超多ASCII编码的界定,用unicode编码是20013,二前进制01001110
    00101101

    (3)A用unicode编码中单待前面补0,二进制是 00000000 01000001

  6. 乱码问题化解而,但是一旦情节都是英文,unicode编码比ASCII需要差不多同加倍的存储空间,同时使传输需要差不多同样倍之传导。

  7. 所以出现了可变长的编码“utf-8”,把英文变长一个字节,汉字3单字节。特别生疏的成为4-6字节。如果传输大量底英文,utf-8作用就十分明显。

一点资讯 1

作者:今孝

出处:http://www.cnblogs.com/jinxiao-pu/p/6707830.html

正文版权归作者和博客园共有,欢迎转载,但未经作者同意要保留这个段子声明,且当文章页面明显位置给出原文连接。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图