本文实例讲述了Python实现从脚本里运行scrapy的方法。分享给大家供大家参考。具体如下:

复制代码 代码如下:

#!/usr/bin/python

import os

os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') #Must be at the top before other imports

from scrapy import log, signals, project

from scrapy.xlib.pydispatch import dispatcher

from scrapy.conf import settings

from scrapy.crawler import CrawlerProcess

from multiprocessing import Process, Queue

class CrawlerScript():

def __init__(self):

self.crawler = CrawlerProcess(settings)

if not hasattr(project, 'crawler'):

self.crawler.install()

self.crawler.configure()

self.items = []

dispatcher.connect(self._item_passed, signals.item_passed)

def _item_passed(self, item):

self.items.append(item)

def _crawl(self, queue, spider_name):

spider = self.crawler.spiders.create(spider_name)

if spider:

self.crawler.queue.append_spider(spider)

self.crawler.start()

self.crawler.stop()

queue.put(self.items)

def crawl(self, spider):

queue = Queue()

p = Process(target=self._crawl, args=(queue, spider,))

p.start()

p.join()

return queue.get(True)

# Usage

if __name__ == "__main__":

log.start()

"""

This example runs spider1 and then spider2 three times.

"""

items = list()

crawler = CrawlerScript()

items.append(crawler.crawl('spider1'))

for i in range(3):

items.append(crawler.crawl('spider2'))

print items

希望本文所述对大家的Python程序设计有所帮助。

python使用scrapy_Python实现从脚本里运行scrapy的方法相关推荐

  1. python scrapy框架基如何实现多线程_Python实现在线程里运行scrapy的方法

    本文实例讲述了Python实现在线程里运行scrapy的方法.分享给大家供大家参考.具体如下: 如果你希望在一个写好的程序里调用scrapy,就可以通过下面的代码,让scrapy运行在一个线程里. & ...

  2. 小米linux终端,Android里运行ubuntu的方法(以小米2S为例)

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 1,事先准备: (1)一部已经root过的安卓手机(实例:小米2S,开发板系统) (2)一个叫"终端模拟器&q ...

  3. python 中定义的函数 如何在main中调用_在python中,在定义类时自动运行函数的方法?_class_酷徒编程知识库...

    类定义时初始化类属性,不需要函数.import numpy as np class Foo: bar = np.range(100) def __init__(self): # etc. 如果要在导入 ...

  4. Python IDLE无法显示行号、Python IDLE shell里运行py文件

    一.Python自带的IDLE shell里无法在左侧显示行号,在右下角会显示当前光标所处的位置(行号.列号). 但是程序报错时,无法根据行号及时查看到相应的行. 使用快捷键Alt+G可以定位到指定的 ...

  5. shell python脚本语言_python脚本里使用shell语句

    有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 ...

  6. python你的人生_人生苦短:运行你的第一个 Python 脚本

    Shell 是一个Read-Eval-Print-Loop(REPL),它只接受命令,评估它们并打印输出. 我会假设你已经安装了一个有效的Python解释器,已经准备运行你的第一个Python脚本. ...

  7. Shell脚本里调用Python程序

    脚本背景:主管要求看门狗程序不仅仅只是看门,还要在看门成功的时候发送邮件给各个开发人员,而且必须要用公司原有的python程序作为发送邮件的主程序,所以需要在原有的看门狗程序上加一句话,而这个看门狗程 ...

  8. Python 用一个脚本来控制另一个脚本的运行、关闭

    1.一开始按照网上教程,使用subprocess来实现另外一个脚本的运行和关闭,但是这个脚本在连续运行的时候不容易返回数据,判断脚本运行的状态 2.使用笨方法,用os.system运行脚本,使用os. ...

  9. 记一次rc.local中python脚本无法运行的解决过程

    记一次rc.local中python脚本无法运行的解决过程 问题记录: 解决过程: 1. 检查/etc/rc.local的权限 2. 看运行出错日志 3. 修改文件不重启啊(用户切换到root了,我再 ...

最新文章

  1. href 带参数 打开exe_js调用exe文件 兼容所有浏览器
  2. 日期在数据库的存储和取出
  3. python 类-Python的类
  4. QT的QCalendarWidget类的使用
  5. Mybatis分页中遇到的坑3
  6. 【Hadoop】在Linux中的Hadoop部署与yarn HDFS MapReduce 的配置中常见的问题?你解决了吗?
  7. 内存首地址为1000h_成为顶级黑客--计算机内存基本知识(三)
  8. spring MVC中定义异常页面
  9. python机器学习库sklearn——SGD梯度下降法
  10. KDevelop下如何选择不同的源文件进行执行
  11. 包级别的 TCP/UDP 负载均衡和NAT(Network Address Translate)
  12. Python数据挖掘框架
  13. 三星系列机型 刷机的一些基本常识
  14. Python实现中英文翻译方法总结
  15. 对扫描出的图片进行纠偏
  16. mindmanager 15 停止工作
  17. 轴承轮廓测量解决方案
  18. 卡特兰数列(Catalan )
  19. 让人绝望的C语言恶搞小程序,网友:生无可恋!
  20. 基于STM32F407+RFID的模拟公交车刷卡收费系统小项目

热门文章

  1. 解题报告:hdu 1556 Color the ball(区间修改,单点查询)
  2. 软件包管理:源码包管理-源码包与RPM包的区别
  3. 软件工程第八次作业——例行报告
  4. mongodb常用语句(集合操作)
  5. 安全基础知识 细说暴库的原理与方法
  6. JavaScript 的 switch 条件语句
  7. python面试题之如何计算一个字符串的长度
  8. JS日期比较大小 给定时间和持续时间计算最终时间
  9. 数据科学 IPython 笔记本 8.1 matplotlib
  10. TensorFlow 学习指南 三、学习