Python實(shí)現(xiàn)從腳本里運(yùn)行scrapy的方法
本文實(shí)例講述了Python實(shí)現(xiàn)從腳本里運(yùn)行scrapy的方法。分享給大家供大家參考。具體如下:
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
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- 講解Python的Scrapy爬蟲(chóng)框架使用代理進(jìn)行采集的方法
- 深入剖析Python的爬蟲(chóng)框架Scrapy的結(jié)構(gòu)與運(yùn)作流程
- Python3安裝Scrapy的方法步驟
- python爬蟲(chóng)框架scrapy實(shí)戰(zhàn)之爬取京東商城進(jìn)階篇
- Python自定義scrapy中間模塊避免重復(fù)采集的方法
- 零基礎(chǔ)寫(xiě)python爬蟲(chóng)之使用Scrapy框架編寫(xiě)爬蟲(chóng)
- Python爬蟲(chóng)框架Scrapy安裝使用步驟
- python使用scrapy解析js示例
- 詳解python3 + Scrapy爬蟲(chóng)學(xué)習(xí)之創(chuàng)建項(xiàng)目
相關(guān)文章
python3 selenium自動(dòng)化 frame表單嵌套的切換方法
今天小編就為大家分享一篇python3 selenium自動(dòng)化 frame表單嵌套的切換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python庫(kù)pydantic的入門(mén)簡(jiǎn)易教程
本文主要介紹了python庫(kù)pydantic的入門(mén)簡(jiǎn)易教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07實(shí)踐Python的爬蟲(chóng)框架Scrapy來(lái)抓取豆瓣電影TOP250
這篇文章主要介紹了實(shí)踐Python的爬蟲(chóng)框架Scrapy來(lái)抓取豆瓣電影TOP250的過(guò)程,文中的環(huán)境基于Windows操作系統(tǒng),需要的朋友可以參考下2016-01-01使用python創(chuàng)建生成動(dòng)態(tài)鏈接庫(kù)dll的方法
這篇文章主要介紹了使用python創(chuàng)建生成動(dòng)態(tài)鏈接庫(kù)dll的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Python??reduce()函數(shù)的用法示例代碼
reduce函數(shù)原本在python2中也是個(gè)內(nèi)置函數(shù),不過(guò)在python3中被移到functools模塊中,這篇文章主要介紹了Python reduce()函數(shù)的用法,需要的朋友可以參考下2023-05-05Django中session進(jìn)行權(quán)限管理的使用
本文主要介紹了Django中session進(jìn)行權(quán)限管理的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07