我在登录scrapy时遇到了麻烦,我能找到的大部分都已经过时了。
我已经在settings.py
文件中设置了LOG_FILE="log.txt"
,从文档中可以看出,这应该可以工作:
Scrapy在每个Spider示例中提供了一个日志记录器,可以像这样访问和使用:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://scrapinghub.com']
def parse(self, response):
self.logger.info('Parse function called on %s', response.url)
但当我这样做:
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")
我也试着把它放在类__init__
中,如下所示:
def __init__(self, *a,**kw):
super(FanfictionSpider, self).__init__(*a,**kw)
logging.basicConfig(filename="log.txt",level=logging.INFO)
我再一次没有得到输出到文件,只是到控制台,和foobar
没有出现。有人能指导我如何正确登录Scrapy吗?
3条答案
按热度按时间btxsgosb1#
对于日志记录,我只是在spider类中添加了以下内容:
这会将所有零碎的输出作为
log.txt
文件放入项目根目录如果你想手动记录一些东西,你不应该使用Scrapy logger,它已经被弃用了。
q1qsirdb2#
直到我在www.example.com代码的导入部分添加了以下代码,我才能使@Rafael Almeda的解决方案工作spider.py:
v1uwarro3#
看起来你没有在任何时候调用你的
parse_page
方法。尝试注解你的parse
方法,你会收到一个NotImplementedError
,因为你正在启动它,你说它'什么都不做'。如果你实现了
parse_page
方法,也许它会起作用希望对你有帮助。