Scrapy Spider如何传递参数的多种方式有哪些?

2026-05-05 12:560阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计394个文字,预计阅读时间需要2分钟。

Scrapy Spider如何传递参数的多种方式有哪些?

根据项目实际需求向spider传递递归参数以控制spider的行为,例如,根据用户提交的url来控制spider爬取的网站。在这种情况下,可以采用以下两种方法向spider传递递归参数:

第一种方法:直接将需要爬取的url作为参数传递给spider,由spider根据url进行爬取。

有时需要根据项目的实际需求向spider传递参数以控制spider的行为,比如说,根据用户提交的url来控制spider爬取的网站。在这种情况下,可以使用两种方法向spider传递参数。

第一种方法,在命令行用crawl控制spider爬取的时候,加上-a选项,例如:

scrapy crawl myspider -a category=electronics

然后在spider里这样写:

import scrapy class MySpider(scrapy.Spider): name = 'myspider' def __init__(self, category=None, *args, **kwargs): super(MySpider, self).__init__(*args, **kwargs) self.start_urls = ['www.example.com/categories/%s' % category] # ...

也就是在spider的构造函数里加上带入的参数即可。

第二种方法,在用scrapyd控制spider的时候,可以向schedule.json发送-d选项加入参数,同样的,也需要在spider的构造函数里如上写法。

阅读全文

本文共计394个文字,预计阅读时间需要2分钟。

Scrapy Spider如何传递参数的多种方式有哪些?

根据项目实际需求向spider传递递归参数以控制spider的行为,例如,根据用户提交的url来控制spider爬取的网站。在这种情况下,可以采用以下两种方法向spider传递递归参数:

第一种方法:直接将需要爬取的url作为参数传递给spider,由spider根据url进行爬取。

有时需要根据项目的实际需求向spider传递参数以控制spider的行为,比如说,根据用户提交的url来控制spider爬取的网站。在这种情况下,可以使用两种方法向spider传递参数。

第一种方法,在命令行用crawl控制spider爬取的时候,加上-a选项,例如:

scrapy crawl myspider -a category=electronics

然后在spider里这样写:

import scrapy class MySpider(scrapy.Spider): name = 'myspider' def __init__(self, category=None, *args, **kwargs): super(MySpider, self).__init__(*args, **kwargs) self.start_urls = ['www.example.com/categories/%s' % category] # ...

也就是在spider的构造函数里加上带入的参数即可。

第二种方法,在用scrapyd控制spider的时候,可以向schedule.json发送-d选项加入参数,同样的,也需要在spider的构造函数里如上写法。

阅读全文