Python 登录Scrapy
我在登录scrapy时遇到了问题,我能找到的大部分内容都过时了 我已经在Python 登录Scrapy,python,logging,documentation,scrapy,Python,Logging,Documentation,Scrapy,我在登录scrapy时遇到了问题,我能找到的大部分内容都过时了 我已经在settings.py文件中设置了LOG\u FILE=“LOG.txt”,从文档中可以看出,这应该可以: Scrapy在每个Spider实例中提供了一个记录器,可以这样访问和使用: 但当我这样做的时候: class MySpider(CrawlSpider): #other code def parse_page(self,response): self.logger.info("fooba
settings.py
文件中设置了LOG\u FILE=“LOG.txt”
,从文档中可以看出,这应该可以:
Scrapy在每个Spider实例中提供了一个记录器,可以这样访问和使用:
但当我这样做的时候:
class MySpider(CrawlSpider):
#other code
def parse_page(self,response):
self.logger.info("foobar")
我什么也得不到。如果我设定
logger = logging.basicConfig(filename="log.txt",level=logging.INFO)
在我的文件的顶部,在导入之后,它创建了一个日志文件,默认的输出记录得很好,但是
class MySpider(CrawlSpider):
#other code
def parse_page(self,response):
logger.info("foobar")
没有露面。我还尝试将其放入类\uuuuu init\uuuu
,如下所示:
def __init__(self, *a, **kw):
super(FanfictionSpider, self).__init__(*a, **kw)
logging.basicConfig(filename="log.txt",level=logging.INFO)
我再次没有得到文件的输出,只是得到控制台的输出,
foobar
没有显示。有人能告诉我如何正确登录Scrapy吗?似乎您在任何时候都没有调用parse\u page
方法。
尝试注释您的parse
方法,您将收到一个NotImplementedError
,因为您正在启动它,并且您说它“什么都不做”
也许如果你实现你的parse\u页面
方法,它会起作用
def parse(self, response):
self.logger.info('Parse function called on %s', response.url)
self.parse_page(response)
希望它对您有所帮助。对于日志记录,我只在spider类中添加了以下内容:
import logging
from scrapy.utils.log import configure_logging
class SomeSpider(scrapy.Spider):
configure_logging(install_root_handler=False)
logging.basicConfig(
filename='log.txt',
format='%(levelname)s: %(message)s',
level=logging.INFO
)
这将把所有碎片输出作为log.txt
文件放到项目根目录中
如果要手动记录某些内容,则不应使用scrapy logger,它已被弃用。只需使用python
import logging
logging.error("Some error")
在我将以下内容添加到spider.py代码的导入部分之前,我无法使@Rafael Almeda的解决方案起作用:
from scrapy.utils.log import configure_logging
您是否检查过您应该在
settings.py
文件中设置日志文件名和其他详细信息。@Granitosaurus是的,我在问题的开头就说过了,并在整个过程中引用了文档
from scrapy.utils.log import configure_logging