我正在玩scrapy,现在我尝试搜索不同的关键字,从命令行工具传递参数。 基本上,我想定义一个关键字,爬虫应该搜索包含这个关键字的url。 这是我的命令行:
scrapy crawl myfirst -a nombre="Vermont"
这是我的履带:
class myfirstSpider(CrawlSpider):
name = 'myfirst'
allowed_domains= ["leroymerlin.es"]
start_urls = ["https://www.leroymerlin.es/decoracion-navidena/arboles-navidad?index=%s" % (page_number) for page_number in range(2)]
def __init__(self, nombre=None, *args, **kwargs):
super(myfirstSpider, self).__init__(*args, **kwargs)
rules = (
Rule(LinkExtractor(allow= r'/fp/\*nombre*',), callback = 'parse_item'),)
def parse_item(self, response):
items = myfirstItem()
product_name = response.css ('.titleTechniqueSheet::text').extract()
items['product_name'] = product_name
yield items
不幸的是,它不工作… 欢迎帮助,谢谢! 我找到办法了!它适合我:
class myfirstSpider(CrawlSpider):
name = 'myfirst'
allowed_domains= ["leroymerlin.es"]
start_urls = ["https://www.leroymerlin.es/decoracion-navidena/arboles-navidad?index=%s" % (page_number) for page_number in range(2)]
def __init__(self, nombre=None, *args, **kwargs):
self.rules = (
Rule(LinkExtractor(allow= nombre), callback = 'parse_item'),)
super(myfirstSpider, self).__init__(*args, **kwargs)
def parse_item(self, response):
items = myfirstItem()
product_name = response.css ('.titleTechniqueSheet::text').extract()
items['product_name'] = product_name
yield items
和命令:
scrapy crawl myfirst -a nombre="vermont"
谢谢大家! 问题来源StackOverflow 地址:/questions/59383208/scrapy-how-to-use-arguments-for-multiple-search-terms
如果希望spider定向爬取,就需要给spider传入参数
首先在spider类中定义初始化函数
def __init__(self, start_urls=None, number=5, *args, **kwargs):
super(DouBanMovieSituationSpider, self).__init__(*args, **kwargs)
self.start_urls = start_urls
self.number = int(commentNum)
调用时使用
scrapy crawl xxxSpider -a start_urls=xxxxxx -a number=number
想传多少个参数,就在参数前加多少个 -a……
有同学是使用pycharm里面的调用python语句来模拟执行cmd的,则将python语句改为“
from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'xxxSpider',"-a","start_urls=xxxx","-a","number=666"])
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。