Python网络爬虫Scrapy框架研究

Scrapy1.0教程

Wiki

Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。 Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类, 如BaseSpider、sitemap爬虫等,还有对web2.0爬虫的支持。

Scrach是抓取的意思,这个Python的爬虫框架叫Scrapy,大概也是这个意思吧,就叫它:小刮刮吧。

基于最新的Scrapy 1.0编写,已更新至Python3.6


对多个内容网站的采集,主要功能实现如下:

  • 最新文章列表的爬取

  • 采集的数据放入MySQL数据库中,并且包含标题,发布日期,文章来源,链接地址等等信息

  • URL去重复,程序保证对于同一个链接不会爬取两次

  • 防止封IP策略,如果抓取太频繁了,就被被封IP,目前采用三种策略保证不会被封:

    • 策略1:设置download_delay下载延迟,数字设置为5秒,越大越安全
    • 策略2:禁止Cookie,某些网站会通过Cookie识别用户身份,禁用后使得服务器无法识别爬虫轨迹
    • 策略3:使用user agent池。也就是每次发送的时候随机从池中选择不一样的浏览器头信息,防止暴露爬虫身份
    • 策略4:使用IP池,这个需要大量的IP资源,貌似还达不到这个要求
    • 策略5:分布式爬取,这个是针对大型爬虫系统的,对目前而言我们还用不到。
  • 模拟登录后的爬取

  • 针对RSS源的爬取

  • 对于每个新的爬取目标网站,或者原来的网站格式有变动的时候,需要做到可配置, 只修改配置文件即可,而不是修改源文件,增加一段爬虫代码,主要是用xpath配置爬取规则

  • 定时爬取,设置定时任务周期性爬取

  • 与微信公共平台的结合,给大量的订阅号随机分配最新的订阅文章。

  • 利用scrapy-splash执行页面javascript后的内容爬取

最新文章

  1. 洛谷P3379 【模板】最近公共祖先(LCA)
  2. Linux系统部署体验中心
  3. easyui datagrid toolbar 添加搜索框
  4. Apache Mod/Filter Development
  5. CLR via C#(18)——Enum
  6. MySQL基础操作(一)
  7. 解析表达式到lucene.net的Query
  8. [C++基础]一个比较常用的配置文件/初始化文件读取程序
  9. dubbo模块组织方式
  10. Window 添加定时任务
  11. Java Swing中Substance个人比较喜欢的两种组合
  12. poj2405---体积几何
  13. mysql的基础操作
  14. IOS学习之路二十二(UIAlertView获得文本框内容及添加北京图片)
  15. Java命令模式以及来自lambda的优化
  16. Scala中的override
  17. 【学习总结】GirlsInAI ML-diary day-13-Try/Except 异常处理
  18. 第 9 章 数据管理 - 074 - 如何安装和配置 Rex-Ray?
  19. oracle 自动备份
  20. 转)VCSA 6.5重启无法访问,报错“503 Service Unavailable”的解决方法

热门文章

  1. Aug.2019_Memory
  2. 周董新歌搞崩QQ,抓取20W评论看看歌迷在说啥
  3. python接口自动化4-常用取token值方法
  4. fiddler抓包-7-C端弱网测试
  5. openssl编译安装
  6. SAP PI接口(RFC类型)在函数字段修改或增加后,出现字段映射错误问题
  7. Asp.Net Core 中的静态文件
  8. VS2019已还原ReSharper的功能
  9. 2019年ASP.NET Core学习路线
  10. ThreadPoolTaskExecutor学习