Python:Scrapy传入自定义参数运行

简介: Python:Scrapy传入自定义参数运行

运行命令

# 运行爬虫
$ scrapy crawl spiderName
# 传入自定义参数运行
$ scrapy crawl spiderName -a parameter1=value1 -a parameter2=value2

示例:通过3种方式获取传入的参数

# -*- coding: utf-8 -*-
import scrapy
from scrapy import cmdline
class BaiduSpider(scrapy.Spider):
    name = 'baidu_spider'
    start_urls = ['https://www.baidu.com/']
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 方式一: 在init方法中获取参数
        num = kwargs.get('num')
        print('init num: ', num)
    def parse(self, response):
        # 方式二: 在实例方法中获取参数
        # 如果没有传参数会报错: AttributeError: 'BaiduSpider' object has no attribute 'num'
        print('self.num: ', self.num)
        # 方式三: 在实例方法中获取参数
        num = getattr(self, 'num', False)
        print('getattr: ', num)
if __name__ == '__main__':
    cmdline.execute("scrapy crawl baidu_spider -a num=10".split())

参考

Scrapy中传入自定义参数

相关文章
|
2天前
|
Python
Python中使用星号(*)处理位置参数
【6月更文挑战第14天】
9 4
|
2天前
|
存储 Python 容器
|
1天前
|
Python
Python中解包为关键字参数
【6月更文挑战第15天】
6 2
|
3天前
|
Python
在Python中,解包参数列表和Lambda表达式是两个不同的概念
【6月更文挑战第19天】在Python中,解包参数允许将序列元素作为单独参数传递给函数,如`greet(*names_and_ages)`。而Lambda表达式用于创建匿名函数,如`lambda x, y: x + y`。两者可结合使用,如`max(*numbers)`找列表最大值,但过度使用lambda可能降低代码可读性。
11 3
|
5天前
|
Python
|
5天前
|
Python
python中使用星号(*)处理位置参数
【6月更文挑战第11天】
9 3
|
5天前
|
分布式计算 DataWorks 调度
阿里云DataWorks-部署自定义python项目问题
阿里云DataWorks-多种方式部署自定义python项目并进行调度
|
7天前
|
Python
Python中参数解包(Argument Unpacking)
【6月更文挑战第10天】
8 3
|
Python
Python中引入自定义路径下的用户自定义类
自定义类如下: import math class Circle: # Construct a circle object def __init__(self, radius = 1): self.
765 0
|
7天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!