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

首頁 > 編程 > Python > 正文

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

2019-11-25 17:49:23
字體:
來源:轉載
供稿:網友

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武川县| 贵阳市| 广宗县| 玛沁县| 商都县| 赞皇县| 大方县| 宜昌市| 荆门市| 商城县| 上思县| 西畴县| 紫阳县| 商丘市| 建宁县| 鱼台县| 武宣县| 上饶县| 石泉县| 六安市| 天等县| 观塘区| 建昌县| 东明县| 札达县| 南投县| 高碑店市| 偃师市| 定远县| 赣州市| 开封市| 包头市| 仁怀市| 周口市| 张家口市| 竹溪县| 安塞县| 阿克| 吉林省| 额济纳旗| 孝昌县|