Scrapy相关汇总

  • Author:杜七
  • Date:2017.02.17

0 | 安装

1 | 技巧

  • 爬虫调试:http://www.cnblogs.com/sufei-duoduo/p/5884209.html

  • 在 spider 中启动 shell 来查看 response,scrapy shell 'http://scrapy.org' --nolog,以及使用scrapy parse --spider=touming url -c parse_item查看parse_item()函数是否符合自己期望

    • 有时您想在 spider 的某个位置中查看被处理的 response, 以确认您期望的 response 到达特定位置。这可以通过 scrapy.shell.inspect_response 函数来实现。以下是如何在 spider 中调用该函数的例子:
    • 代码示例
  • 使用参数爬取数据:http://www.cnblogs.com/sufei-duoduo/p/5867815.html

  • 发送email邮件,http://www.cnblogs.com/sufei-duoduo/p/5883992.html

  • 在抓取网站时, 暂停爬虫并于稍后恢复而不是重新开始, 有时会很有用 。 比如, 软件更新后重启计算机, 或是要爬取的网站出现错误需要稍后继续爬 取时, 都可能会中断爬虫。 非常方便的是, Scrapy 内置了对暂停与恢复爬取 的支持, 这样我们就不需要再修改示例爬虫了 。 要开启该功能, 我们只需要 定义用于保存爬虫当前状态 目 录的 JOBDIR 设置即可。 需要注意的是, 多个 爬虫的状态需要保存在不同的 目录当中。 下面是在我们的爬虫中使用该功能的示例 。

  • $ scrapy crawl country -s L。G_LEVEL=DEBUG -s JOBDIR=crawls/country
  • 我们使用Ac CCtrl+C) 发送终止信号, 然后 爬虫又完成了几个条 目 的处理之后才终止。 想要 Scrapy 保存爬虫状态, 就必 须等待它正常结束, 而不能经受不住诱惑再次按下 C创+C 强行立即终止 ! 现 在, 爬虫状态保存在 crawls/country 目录中, 之后可以运行同样的命令 恢复爬虫运行 。

2 | 部署爬虫

1) 可视化部署

2)手动部署

  • sudo pip install scrapyd
  • shudo pip install scrapyd-client
  • 首先切换到项目的目录,scrapy.cfg记录了项目的配置信息
  • 修改scrapy.cfg配置
  • [settings] default = Test.settings [deploy:Myploy]#发布名称 url = http://localhost:6800/ #项目发布到那个地址 project = Test#项目名称
  • 要发布项目,首先要启动scrapyd,直接在命令行输入scrapyd
  • 发布项目,CD到根目录,scrapyd-deploy Myploy -p Test #在scrapy.cfg文件有配置 Packing version 1482303178 Deploying to project "Test" in http://localhost:6800/addversion.json Server response (200): {"status": "ok", "project": "Test", "version": "1482303178", "spiders": 1, "node_name": "tozo-CW65S"}
  • 现在只是将项目发布到目标地址,但是没有调度爬虫,调度爬虫需要用到curl命令,在http://localhost:6800有提示,稍微改动,如下:curl http://localhost:6800/schedule.json -d project=Test -d spider=spd,可以在http://localhost:6800看结果了。
  • 取消一个爬虫:curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID

3 | 使用代理

    原文作者:杜七
    原文地址: https://www.jianshu.com/p/fd181f419261
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞