scrapy之实战演练(干货-比沙漠还干)

大家好,我是阿爬!这里是讲述阿爬和阿三爬虫故事的爬友圈

继上期潜聊scrapy,本期为续集,做一个实例演示分享,希望能提升大家scrapy的使用技巧

1

常用命令

1.创建项目

scrapy startproject project_name

2.创建爬虫

cd project_namescrapy genspider spider_name domain

3.运行爬虫

方法一(项目级命令):scrapy crawl spider_name

方法二(全局命令):scrapy runspider spider_name.py

方法二(脚本):

4.输出结果到文件

scrapy crawl spider_name -o output_file.json

5.暂定和恢复爬虫

scrapy crawl spider_name -s JOBDIR=crawls/somespider-1

2

项目结构和代码编写

1.项目结构

cainiao.py: 项目爬虫文件,爬虫入口

items.py: 定义爬虫中需要的字段

middlewares.py: 写爬虫、请求对象和响应对象的中间件

pipelines.py: 写数据储存相关操作

setting.py: 项目的各种配置

main.py: 项目启动文件,用于配置调试和启动项目

2.编写爬虫文件

重写start_requests方法,使用性更灵活,如果不重写直接必须start_urls,因为源码中需要对其进行循环,然后构建Request对象。

我们重写后可以按需定义相关变量,最终也同样构造出Request对象即可,这里我把需要处理的参数通过request的meta属性传递,方便在中间件中处理

3.编写中间件

​在编写中间件主要关注process_request函数,其次再写一些自己需要的功能,这里处理了sign加密参数的生成和请求参数的构造,将参数拼接到url上,最终构建完整的url。

 如果请求头中有变化参数需要处理,此处也可再增加一个处理请求头的函数。

4.编写管道文件

A.在item.py中定义好需要的字段。

B.在pipeline.py中主要重写process_item函数,编写处理item数据的逻辑。

这里我们有具体些保存的逻辑,可自行处理练习。

5.编写配置文件

以上文件写好后需要打开setting.py文件中的相关设置

ROBOTSTXT_OBEY设置为False,不遵守机器人协议。

DEFAULT_REQUEST_HEADERS可以在这里写死,也可以在middleware中处理,后者最为合适,我在此处是写死的。

DOWNLOADER_MIDDLEWARES中间件调用,将写好的中间件名称添加到字典中,数值越小优先级越高,即优先执行。

ITEM_PIPELINES同中间件一样,数值越小优先级越高,将我们写好的管道文件添加到此字典中

STATIC_DIR是静态文件路径,创建在项目根目录下,为了存放需要执行的js文件,如果不配置此变量,会导致执行js文件时找不到文件。

3

运行调试

1.调试设置

我使用的是pycharm调试项目,来看一看配置步骤,非常简单,如图所示:

配置好点击debug运行项目就可以愉快的调试项目,了解项目执行流程和运行结果。

2.结果展示

最后展示一下运行成功的结果

至此本文的干货分享完毕,希望通过本文介绍和实践帮助大家学会scrapy框架。

本文只介绍了一种get请求+参数加密的形式,还有post请求+formdata参数加密/json参数加密的情况,大家可以自行尝试。从源码看scrapy.http.request提供了form_request和json_request两种请求类供我们处理以上两种情况。最后欢迎大家多多留言讨论。

特别声明:本文章只作为学术研究,不作为其他不法用途,如有侵权请联系作者删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值