• 面试题之爬虫


    爬虫url去重方法

    • 将访问过的url保存到数据库中,然后爬取前查询校验(效率很低)
    • 用python中的set去重,比如100000000个URL需要内存100000000*2byte*50/1024/1024/1024=9G(很占内存)
    • URL经过MD5之后保存到set,一般一个MD5占128位=16byte*100000000=1G多(scrapy的方法类似,scrapy是用过sha1)
    • 用bitmap方法,将访问过的URL通过hash函数映射到某一位
    • bloomfilter方法对bitmap进行改进,多重hash函数降低冲突(URL数据很大时候用)

    scrapy_redis去重原理是什么样的

    • 原本的scrapy是采用队列的方式实现调度,采用指纹加上set的形式实现去重
    • Scrapy-Reids 就是将Scrapy原本在内存中处理的调度(就是一个队列Queue)、去重、这两个操作通过Redis来实现,因为每个scrapy都是个进程,不共享内存空间
    • Scrapy-Reids中调度优先爬取就是采用redis中的有序集合来实现,去重仍然采用redis集合
    • 更多可见:https://cuiqingcai.com/6058.html

    假如某一事件有好几家网站进行报道,你是通过是什么来判断这几家网站报导的是同一间事件(也就是所谓的去重)?

    你都爬了哪些网站,说说你觉得印象最深刻的或者你觉得最难爬的一个网站?

    封锁ip之后怎么处理

    爬取过程中的人机验证

    Tesseract的工作原理是什么,你是怎么训练你的Tesseract?

  • 相关阅读:
    回头再看libpcap
    lex error
    perl 的威力
    什么叫回流和重绘?
    HTTP协议与FTP协议的区别【转】
    Linux操作系统Redhat系列与Debian系列 【转】
    dock是什么? docker就是集装箱原理【转】
    光端机的作用【转】
    c++ -- call_once用法
    c++ -- thread详细解析
  • 原文地址:https://www.cnblogs.com/ycg-blog/p/12660931.html
Copyright © 2020-2023  润新知