Вы не можете.
Scrapy не отслеживает ведение журнала, поэтому, если компонент не обновляет мета (иногда это делает) некоторыми деталями, вам придется обновлять каждый компонент тем, что вы хотите сделать.
Вы можете обновить местоположение, где появляется предупреждение (scrapy.core.downloader.tls
), и сделать так, чтобы оно обновляло response.meta
некоторыми ключевыми словами, но это, кажется, очень сложно сделать.
Лучше всего было бы открыть вопрос о github-части scrapy - это может быть полезно для будущих версий scrapy.
1010 * В качестве альтернативы *
В качестве хака вы можете прочитать лог-файл для доменного имени и, если он содержит его, пометить очищенный элемент:
def parse(self, response):
domain = 'foo.com'
item = {'bad_cert': False}
with open('log.out') as f:
for line in f:
if 'Remote certificate' in line and domain in line:
item['bad_cert'] = True
Хотя я не уверен, насколько это надежно. На бумаге сообщение журнала всегда должно быть написано перед функцией анализа, но регистрация не предназначена для чтения во время выполнения.