Python实现从脚本里运行scrapy的方法

yipeiwu_com5年前Python基础

本文实例讲述了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程序设计有所帮助。

相关文章

将tensorflow的ckpt模型存储为npy的实例

实例如下所示: #coding=gbk import numpy as np import tensorflow as tf from tensorflow.python impor...

Python yield使用方法示例

1. iterator叠代器最简单例子应该是数组下标了,且看下面的c++代码: 复制代码 代码如下:int array[10];for ( int i = 0; i < 10; i...

django认证系统实现自定义权限管理的方法

本文记录使用django自带的认证系统实现自定义的权限管理系统,包含组权限、用户权限等实现。 0x01. django认证系统 django自带的认证系统能够很好的实现如登录、登出、创建...

Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程

Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程

以此文记录Python与Tensorflow及其开发环境的安装与配置过程,以备以后参考。 1 硬件与系统条件 Win7 64位系统,显卡为NVIDIA GeforeGT 635M 2...

python并发编程多进程之守护进程原理解析

守护进程 主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务 主进程创建子进程,然后将该进程设置成守护自己的进程 关于守护进程需要强调两点: 其一:守护...