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

 更新时间:2015年04月07日 16:41:39   作者:pythoner  
这篇文章主要介绍了Python实现从脚本里运行scrapy的方法,实例分析了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程序设计有所帮助。

相关文章

  • Django2 连接MySQL及model测试实例分析

    Django2 连接MySQL及model测试实例分析

    这篇文章主要介绍了Django2 连接MySQL及model测试,结合实例形式分析了Django2框架使用pymysql库进行mysql数据库连接与model调用测试方法,需要的朋友可以参考下
    2019-12-12
  • python线程类改变类变量的操作代码

    python线程类改变类变量的操作代码

    这篇文章主要介绍了python线程类改变类变量的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Python 迭代器Iterator详情

    Python 迭代器Iterator详情

    这篇文章主要介绍了Python 迭代器Iterator详情,迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据,下文关于其详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Python sqrt()函数用法说明

    Python sqrt()函数用法说明

    这篇文章主要介绍了Python sqrt()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Django读取Mysql数据并显示在前端的实例

    Django读取Mysql数据并显示在前端的实例

    今天小编就为大家分享一篇Django读取Mysql数据并显示在前端的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 超简单的scrapy实现ip动态代理与更换ip的方法实现

    超简单的scrapy实现ip动态代理与更换ip的方法实现

    这篇文章主要介绍了超简单的scrapy实现ip动态代理与更换ip的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Numpy中Meshgrid函数基本用法及2种应用场景

    Numpy中Meshgrid函数基本用法及2种应用场景

    NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能,下面这篇文章主要给大家介绍了关于Numpy中Meshgrid函数基本用法及2种应用场景的相关资料,需要的朋友可以参考下
    2022-08-08
  • pandas实现excel中的数据透视表和Vlookup函数功能代码

    pandas实现excel中的数据透视表和Vlookup函数功能代码

    今天小编就为大家分享一篇pandas实现excel中的数据透视表和Vlookup函数功能代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 教你编译pjsip源码的方法

    教你编译pjsip源码的方法

    通过本文教大家如何编译pjsip源码,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-10-10
  • 手把手教你实现PyTorch的MNIST数据集

    手把手教你实现PyTorch的MNIST数据集

    本文主要介绍了PyTorch的MNIST数据集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06

最新评论