zoukankan      html  css  js  c++  java
  • Learning Scrapy笔记(一)- Scrapy简单介绍

    Scrapy简述

    Scrapy十一个健壮的,用来从互联网上抓取数据的web框架,Scrapy只需要一个配置文件就能组合各种组件和配置选项,并且Scrapy是基于事件(event-based)的架构,使得我们可以级联多个操作,包括清理、组织、存储数据到数据库等等。假设现在你要抓取一个网站,这个网站的每一页都有一百个条目,Scrapy可以毫不费劲地同时对这个网站发起16个请求,假如每个请求需要一秒钟来完成,你就相当于每秒钟爬取16个页面,相当于每秒钟生成了1600个条目,假如要把这些条目同时存储到云上,每一个条目的存储需要3秒钟(假设的),为了处理这16个请求,就需要运行1600 *3 = 4800个并发的写入请求,对于一个传统的多线程程序来说,就需要转换成4800个线程,这会对系统造成极大的压力。而对于Scrapy来说,只要你的硬件过关, 4800个并发请求是没有问题的。

    使用Scrapy的更多理由

    Scrapy已经发展了5年有多,已经变得成熟和稳定,除了上面提到的性能优点外,Scrapy还有以下几点优点:

    • Scrapy可以处理不完整的HTML

      你可以在Scrapy中使用Beautiful Soup或者lxml,但Scrapy已经提供了selectors(一个在lxml的基础上提供了更高级的接口),可以高效地处理不完整的HTML代码

    • 活跃的Scrapy社区

      Scrapy拥有一个活跃的社区,尤其是在Stack Overflow(https://stackoverflow.com/questions/tagged/Scrapy)上有上千个问题的讨论,更多的社区论坛可以参考这里:http://Scrapy.org/community/

    • 由社区维护的具有良好架构的代码

      Scrapy要求你用标准的方式去组织你的代码,所以你在与他人合作时,别人不用苦苦研究你那拥有奇淫技巧的爬虫

    • 新特性越来越多且质量稳定

      通过观察Scrapy的新闻发布页(http://doc.Scrapy.org/en/latest/news.html),就可以看到在增加的新特性和bug修正

    忠告

    在爬取信息的时候有两个最重要的原则一定要坚守:

    • 不要产生类似于DOS攻击的行为

      一个普通的网站浏览者会花上几秒钟去浏览一个网页,但是一个爬虫可以在一秒钟内下载几十个网页,这会对网站和网站管理员造成压力。通过使用节流阀来自动调整你的下载速率至普通用户级别,如果你的爬取响应时间越来越长,就要减少你的爬取强度。而Scrapy都提供了以上功能

    • 不要侵犯他人的版权

      在你要爬取一个网站之前,最好先查看版权信息声明,弄明白你被允许的行动范围,大多数的网站都允许你下载他们的信息,前提是你不声明对这些信息的版权。要注意的是,Scrapy会使用你的爬虫名称作为User-Agent,来让网站管理员识别出这是一个由爬虫发出的请求。Scrapy也提供一个名为RobotsTxtMiddleware的插件,这个插件可以自动遵守网站的robots.txt协议。

  • 相关阅读:
    wifi 天线
    Ubuntu下通过SSH远程登录服务器的方法
    wifi 天线
    免费20G全能空间正在火爆开放中。。。。。要的抓紧时间申请了.
    php设计模式 Mediator (中介者模式)
    DEDE图片集上传图片时出错显示(FILEID)的解决办法
    SPL spl_autoload_register与__autoload方法使用示例浅谈
    mysql_fetch_array()和mysql_fetch_assoc()两个函数的区别
    nginx多站设置
    php中echo(),print(),print_r()的区别
  • 原文地址:https://www.cnblogs.com/kylinlin/p/5391480.html
Copyright © 2011-2022 走看看