国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大英县| 平舆县| 禄丰县| 通河县| 定安县| 文登市| 调兵山市| 灵武市| 莒南县| 南宫市| 万安县| 栖霞市| 安庆市| 金山区| 永济市| 浦东新区| 吉林市| 德钦县| 新野县| 交口县| 莒南县| 茶陵县| 资源县| 沈阳市| 昭苏县| 广平县| 和顺县| 河北省| 阿鲁科尔沁旗| 友谊县| 曲松县| 永定县| 惠安县| 抚松县| 浪卡子县| 长海县| 房产| 武乡县| 清丰县| 宜都市| 晋中市|