【Scrapy】Scrapy教程9——Spider参数

这一节,我们讲一讲Spider参数问题。
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 = [f"http://www.example.com/categories/{category}"]
        # ...

代码中有个strat_urls,这个都是这是获取第一个爬取网址的地方,但是注意,这个网址和之前的不一样,后面有个{category},熟悉Python一看就知道了,这个是用来在字符串中自动匹配变量的,也就是说category是一个变量,用{}括起来后,就是可以在字符串中自动使用变量,比如我的’category=electronics’,那我最终的url就是http://www.example.com/categories/electronics。然后我们在命令行执行下面的语句。

scrapy crawl myspider -a category=electronics

那么我们爬取的第一个网址就是http://www.example.com/categories/electronics了。那个-a不要丢,spider的crawl命令通过-a选项来传输参数。
还有一个有效的用例是设置 HttpAuthMiddleware 使用的 http 身份验证凭据或 UserAgentMiddleware 使用的用户代理:

scrapy crawl myspider -a http_user=myuser -a http_pass=mypassword -a user_agent=mybot

一般我们做爬虫时,很少这样用,所以大家知道这个即可,如果做一些小型爬虫的话,可以考虑这样使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值