Python爬虫实战

目标

1、使用redis+flask维护动态代理池

2、使用redis+flask维护动态cookies池

3、使用scrapy框架,存储的数据存放到mongodb

4、使用scrapy-redis框架【暂不实现】:分布式的scrapy框架,提升效率

准备阶段

1、建立项目目录,生成虚拟环境,在虚拟机环境中安装依赖库

【注】虚拟机环境的问题参考https://www.jianshu.com/p/d366f3fb32f0

2、使用scrapy命令生成爬虫基本框架

查看常用命令

步骤1:创建一个爬虫项目project

运行结果

步骤2:生成一个spider,可以按照步骤1的提示操作【scrapy genspider toutiao toutiao.com】

【注】产生一个spider,即生成了一个蜘蛛用来爬取头条

步骤3:运行spider,使用命令crawl

步骤4:项目正式开始之前我们来介绍一下项目目录

toutiao.py脚本很明显就是产生的蜘蛛spider,它是用来爬取核心脚本。那么是spider的名字,用来唯一标识爬取数据的蜘蛛;allowed_domains指的是允许爬取的域名,URL定义了爬取的目的URL。parse函数用来解析爬取的结果,最后要将解析到的数据存储到items.py

items.py脚本定义了爬取的数据,如何理解呢。首先解析的数据会自动存储到该脚本中。最后数据处理、存储到数据库、或者展示等也需要从该模块中获取数据

settings.py脚本定义了爬虫常用的配置项,常用的有DEFAULT_REQUEST_HEADERS用来设置爬虫时候的headers信息,SPIDER_MIDDLEWARES用来定义中间件和中间件的优先级

middlewares.py脚本定义中间件,可以用来处理请求request、响应response,以及出现的异常。分别脚本中的3个方法process_request、process_response、process_exception。实际使用中我们需要复写这3个方法。用来写我们业务逻辑。完成之后再配置文件进行配置将我们定义的中间件名字写到配置文件中并设置优先级

pipelines.py脚本即管道脚本,主要作用是items.py脚本中的数据进行存储等,通过管道将数据写入到数据库、文件等

scrapy各模块总体架构图



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1、【WechatSogou】- weixin公众号...
    小天真_5eeb阅读 6,872评论 5 53
  • 作词:田宇 作曲: วรัชยา พรหมสถิต (music) 梦还在当空, 人却被推醒, 他的信像阵冷风。 ...
    南山青阅读 1,417评论 0 3
  • 今天读到这样一段关于幸福的文字,拿来和大家一起分享: 对幸福的感受,取决于我们对幸福的认知,想要得到真正的...
    梦境编剧阅读 2,532评论 3 4
  • 总想去和你家猫咪握爪(一般只有它睡觉的时候你才能得逞 猫随便做点什么,你都会“啊啊啊啊啊啊啊啊啊啊啊卧槽怎么能这么...
    parkmyn阅读 1,937评论 0 0
  • 1.【根据中国新药研发监测数据库(CPM)显示,11月1日CDE受理了正大天晴「依维莫司片」的上市申请,这是“首仿...
    姜悦敏阅读 1,124评论 0 0