在 scrapy 中卷曲 -u

Curl -u in scrapy

如何在 scrapy 上做这个卷曲?

curl –i -u account_id:api_key 
"https://xecdapi.xe.com/v1/convert_from.json/?from=USD&to=CAD,EUR 
&amount=110.23" 

您可以使用scrapy fetch命令:

scrapy fetch http://whosebug.com --nolog > output.html

要使用身份验证,您可以尝试通过 url 本身传递凭据:

scrapy fetch "http://username:password@whosebug.com" --nolog > output.html

找到答案了!!!

由于 Twisted Twisted HTTPS Client 中的错误,Scrapy 不允许通过 URL 或 Authorization header 进行 HTTP 基本身份验证。

我们不得不使用一个不太出名的中间件,HTTPAuthMiddleware https://github.com/scrapy/scrapy/blob/master/docs/topics/downloader-middleware.rst#httpauthmiddleware

要使用它,请像这样激活 settings.py 中的中间件:

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 811,
}

并将这些属性添加到蜘蛛。

from scrapy.spiders import CrawlSpider

class SomeIntranetSiteSpider(CrawlSpider):

    http_user = 'someuser'
    http_pass = 'somepass'
    name = 'intranet.example.com'

    # .. rest of the spider code omitted ...