zoukankan      html  css  js  c++  java
  • Scrapy爬虫(十):爬虫总结以及扩展

    Scrapy爬虫(十):爬虫总结以及扩展

    爬虫总结

    本专题介绍了scrapy的框架原理,并用了5个实例由浅入深的进行了演示。还讲到了scrapy的调试技巧,对于入门scrapy爬虫应该有一定的帮助。

    对于爬虫开发者来说,无非就是分析url、由url下载数据、解析数据,存储数据并应用。

    对url的分析主要是找规律,应为开发网站的开发者为了框架化或者说偷懒,一般同类型内容的url都有一定的规律,比如imdb.cn的网站,url的规律简直是太简单了,作为第一个爬虫去爬这种网站,是很容易入门的。

    还有数据的存储,多个爬虫如何在一个pipeline中将item数据存储到多张表中,文章中也做了介绍,通常我们是将数据存储到数据库,我例子中使用的是mysql,也可以是其他的数据库,比如MongoDB什么的。

    最后对于爬虫的调试我专门做了图例讲解,希望对感兴趣的朋友有些帮助,关于如何使用xpath、css、re我并没有过多的说明,因为这些都有现成的教程,可以自己对比选择使用,在合适的场景下使用合适的工具。

    爬虫的一些扩展

    pyspider是国人开发的爬虫框架,有比较友好的可视化环境,感兴趣的朋友可以尝试下。

    • 开发环境
      python scrapy的开发环境搭建还是比较费精力的,特别是对于python2+、3+的环境选择,通常会有一些坑,另外还要搭建数据库环境比如mysql、redis等等。

    感兴趣的朋友可以尝试使用docker配置环境,对于项目组的话可以配置好环境打成镜像,然后移植到另外的docker中,这样可以保证环境的一致性以及开发效率。

    • 防止爬虫被ban

      1 构造合理的 HTTP 请求头 登录
      2 设置 cookie 的学问
      3 正常的时间访问路径 延时访问
      4 注意隐含输入字段值
      5 爬虫通常如何避开蜜罐
      6 使用可变的远程 IP 地址 代理的使用

    • 具体可参考

    • 分布式爬虫
      scrapy-redis
      scrapy和redis的结合,配合多台主机搭建分布式爬虫开发环境,如果爬虫进阶开发分布式爬虫是非常必要的。

    • 增量更新爬虫
      在分布式的基础上,实现监控网站动态实时增量更新爬取数据。

    • 全网爬虫
      搜索引擎

    最后

    有缘看到本文的朋友,若文中有谬误的话,还请您不吝赐教,谢谢。


  • 相关阅读:
    HTML页面跳转的5种方法
    ngixn配置
    redis秒杀
    php 设计模式
    MySQL之事务的四大特性
    [置顶] JNI之java传递数据给c语言
    jQuery 快速结束当前动画
    编绎OpenJDK
    CF#231DIV2:A Good Number
    CF#213DIV2:B The Fibonacci Segment
  • 原文地址:https://www.cnblogs.com/grimm/p/13884705.html
Copyright © 2011-2022 走看看