python使用scrapy_Python实现从脚本里运行scrapy的方法
本文实例讲述了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程序设计有所帮助。
python使用scrapy_Python实现从脚本里运行scrapy的方法相关推荐
- python scrapy框架基如何实现多线程_Python实现在线程里运行scrapy的方法
本文实例讲述了Python实现在线程里运行scrapy的方法.分享给大家供大家参考.具体如下: 如果你希望在一个写好的程序里调用scrapy,就可以通过下面的代码,让scrapy运行在一个线程里. & ...
- 小米linux终端,Android里运行ubuntu的方法(以小米2S为例)
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 1,事先准备: (1)一部已经root过的安卓手机(实例:小米2S,开发板系统) (2)一个叫"终端模拟器&q ...
- python 中定义的函数 如何在main中调用_在python中,在定义类时自动运行函数的方法?_class_酷徒编程知识库...
类定义时初始化类属性,不需要函数.import numpy as np class Foo: bar = np.range(100) def __init__(self): # etc. 如果要在导入 ...
- Python IDLE无法显示行号、Python IDLE shell里运行py文件
一.Python自带的IDLE shell里无法在左侧显示行号,在右下角会显示当前光标所处的位置(行号.列号). 但是程序报错时,无法根据行号及时查看到相应的行. 使用快捷键Alt+G可以定位到指定的 ...
- shell python脚本语言_python脚本里使用shell语句
有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 ...
- python你的人生_人生苦短:运行你的第一个 Python 脚本
Shell 是一个Read-Eval-Print-Loop(REPL),它只接受命令,评估它们并打印输出. 我会假设你已经安装了一个有效的Python解释器,已经准备运行你的第一个Python脚本. ...
- Shell脚本里调用Python程序
脚本背景:主管要求看门狗程序不仅仅只是看门,还要在看门成功的时候发送邮件给各个开发人员,而且必须要用公司原有的python程序作为发送邮件的主程序,所以需要在原有的看门狗程序上加一句话,而这个看门狗程 ...
- Python 用一个脚本来控制另一个脚本的运行、关闭
1.一开始按照网上教程,使用subprocess来实现另外一个脚本的运行和关闭,但是这个脚本在连续运行的时候不容易返回数据,判断脚本运行的状态 2.使用笨方法,用os.system运行脚本,使用os. ...
- 记一次rc.local中python脚本无法运行的解决过程
记一次rc.local中python脚本无法运行的解决过程 问题记录: 解决过程: 1. 检查/etc/rc.local的权限 2. 看运行出错日志 3. 修改文件不重启啊(用户切换到root了,我再 ...
最新文章
- href 带参数 打开exe_js调用exe文件 兼容所有浏览器
- 日期在数据库的存储和取出
- python 类-Python的类
- QT的QCalendarWidget类的使用
- Mybatis分页中遇到的坑3
- 【Hadoop】在Linux中的Hadoop部署与yarn HDFS MapReduce 的配置中常见的问题?你解决了吗?
- 内存首地址为1000h_成为顶级黑客--计算机内存基本知识(三)
- spring MVC中定义异常页面
- python机器学习库sklearn——SGD梯度下降法
- KDevelop下如何选择不同的源文件进行执行
- 包级别的 TCP/UDP 负载均衡和NAT(Network Address Translate)
- Python数据挖掘框架
- 三星系列机型 刷机的一些基本常识
- Python实现中英文翻译方法总结
- 对扫描出的图片进行纠偏
- mindmanager 15 停止工作
- 轴承轮廓测量解决方案
- 卡特兰数列(Catalan )
- 让人绝望的C语言恶搞小程序,网友:生无可恋!
- 基于STM32F407+RFID的模拟公交车刷卡收费系统小项目