Logging模块的使用
其实我们在编写scrapy爬虫的时候,可以在settings文件中,添加log配置:
LOG_LEVEL="WARNING"#当前这个爬虫只会输出warning的日志,也就是不会显示info,debug等的其它日志信息
那么我们修改一下e1yu爬虫的代码,然后scrapy crawl e1yu:
import scrapy
import logging
class E1yuSpider(scrapy.Spider):
name = 'e1yu'
allowed_domains = ['http://e1yu.com/']
start_urls = ['http://e1yu.com/']
def parse(self, response):
item={}
item['come_from']='e1yu'
for i in range(10):
logging.warning(item)
2020-03-07 21:27:09 [root] WARNING: {'come_from': 'e1yu'}
那么日志的默认格式就是上面代码中的样子,有没有发现输出的结果跟我们平常启动爬虫不一样了。但是这个日志输出的格式不太是我们想要的结果,我们在爬虫e1yu中添加的日志显示的却是root,那么在别的文件中使用日志,同样也会是root,我们可以修改一下日志的输出样式:
import scrapy
import logging
logger=logging.getLogger(__name__)#
class E1yuSpider(scrapy.Spider):
name = 'e1yu'
allowed_domains = ['e1yu.com']
start_urls = ['http://e1yu.com/']
def parse(self, response):
item={}
item['come_from']='e1yu'
for i in range(10):
logger.warning(item)
再次运行代码就可以看到日志的格式变成了:
2020-03-07 21:34:12 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:34:12 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
这样的话我们就能准确的看到日志输出的位置,我们可以在pipelines中加入日志:
import logging
logger=logging.getLogger(__name__)
class MyspiderPipeline(object):
def process_item(self, item, spider):
if spider.name=='e1yu':
logger.warning('--'*20)
return item
修改完成之后需要做的就是在settings文件中开启管道,然后爬虫文件需要yield item,这样pipelines才会接受的值。最后日志的输出结果:
2020-03-07 21:38:43 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:38:43 [myspider.pipelines] WARNING: ----------------------------------------
2020-03-07 21:38:43 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:38:43 [myspider.pipelines] WARNING: ----------------------------------------
那么我们还可以把日志信息保存到本地,方便我们查看,具体的做法就是在settings文件中再添加一个配置信息:
LOG_FILE="./log.log"#日志保存到当前路径下的log.log文件
添加之后再次运行爬虫文件,那么就会在本地的当前目录下看到log.log文件。这里我pycharm需要安装log插件,直接安装就可以。在普通的代码文件也可以使用log模块添加日志。更多关于logging日志模块的使用可参考:Logging库的使用详解
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!