jay*_*ing 7 python scrapy web-scraping
以前,访问子类CsvItemExporter中的设置,我需要修改设置中指定的分隔符,可以使用以下方法完成:
from scrapy.conf import settings
Run Code Online (Sandbox Code Playgroud)
但是,该方法现已折旧:
ScrapyDeprecationWarning:
scrapy.conf不推荐使用模块,crawler.settings而是使用scrapy.conf导入设置中的属性
我现在该怎么办?通常from_crawler," from_settings班级方法不起作用CsvItemExporter.
假设一切都设置正确,不熟悉该错误跟踪,每当我使用 CSVitemexporter 时,我都会通过使用它们项目创建一个附加模块作为 CSVitemexporter,然后简单地声明我的分隔符,如下所示...
你的模块名称.py
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter
class MyProjectCsvItemExporter(CsvItemExporter):
def __init__(self, *args, **kwargs):
delimiter = settings.get('CSV_DELIMITER', ',')
kwargs['delimiter'] = delimiter
fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
if fields_to_export :
kwargs['fields_to_export'] = fields_to_export
super(MyProjectCsvItemExporter, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
然后确保在您的设置中列出了项目(也在您的 items.py 中)
设置.py
FEED_EXPORTERS = {
'csv': 'PROJECTNAME.YOURNAMEFORMODULE.MyProjectCsvItemExporter',
}
FIELDS_TO_EXPORT = [
'etc',
'etc2',]
Run Code Online (Sandbox Code Playgroud)
我确信该过程的工作原理与蜘蛛一样,就像有爬行蜘蛛一样,尽管我不明白为什么不,但目前除了使用爬行器之外,我还没有进行过测试。如果您仍然受困于这个生活关键,那么您的项目文件可以更好地帮助您。
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |