国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現從腳本里運行scrapy的方法

2020-02-23 00:34:30
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁山县| 福鼎市| 宣汉县| 攀枝花市| 卫辉市| 崇文区| 右玉县| 新郑市| 唐山市| 舞阳县| 加查县| 青河县| 三江| 鹤岗市| 屯昌县| 德兴市| 海盐县| 壶关县| 轮台县| 定远县| 类乌齐县| 余姚市| 称多县| 秦皇岛市| 兴隆县| 成武县| 尉氏县| 尤溪县| 晋城| 八宿县| 英德市| 武汉市| 杨浦区| 宝坻区| 尼木县| 普兰店市| 罗江县| 舟曲县| 横山县| 绥棱县| 福鼎市|