import scrapy
from scrapy.crawler import CrawlerProcess
class AppInfoSpider(scrapy.Spider):
name = "brickset_spider"
def start_requests(self):
# expect to pass
yield scrapy.Request(url='https://pypi.org/project/Scrapy/1.3.2/', callback=self.parse, errback=self.detail_errorback)
# expect to fail
yield scrapy.Request(url='https://expired.badssl.com/', callback=self.parse, errback=self.detail_errorback)
def parse(self, response):
pass
def detail_errorback(self, failure):
self.logger.error(failure)
process = CrawlerProcess(settings={
'DOWNLOADER_CLIENTCONTEXTFACTORY': 'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory',
})
process.crawl(AppInfoSpider)
process.start()
Это мой паук. Мне нужно проверить SSL. У меня есть 2 теста: https://pypi.org, как ожидается, пройдет проверку ssl, https://expired.badssl.com/, как ожидается, ssl подтверждение.
Я запускаю код, оба тестовые случаи не пройдены с сообщением об ошибке <twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')
Как это исправить?
Обновление:
https://github.com/pyca/pyopenssl/issues/823#issuecomment -468675241 говорит о Windows Я должен установить load_verify_locations. Но как мне получить к нему доступ?