2016-02-04 2 views
0

У меня проблема с моим сканирующим сканером, когда я его запускаю.ConfigParser и Scrapy: NoSectionError

Я использовал ConfigParser, чтобы иметь небольшую конфигурацию config.ini для установки имени моей таблицы, которое я создаю каждый раз, когда я запускаю обходчик. Это основной способ ломом, но я все еще нуб с Scrapy и питона

Я получаю folowings ошибки:

File "c:\python27\lib\ConfigParser.py", line 279, in options 
    raise NoSectionError(section) 
ConfigParser.NoSectionError: No section: 'SectionOne' 
2016-02-04 15:10:57 [twisted] CRITICAL: 

Вот мой config.py:

import ConfigParser 
import os 

Config = ConfigParser.ConfigParser() 
Config.read(os.getcwd() + '/config.ini') 

def ConfigSectionMap(section): 
    dict1 = {} 
    options = Config.options(section) 
    for option in options: 
     try: 
      dict1[option] = Config.get(section, option) 
      if dict1[option] == -1: 
       DebugPrint("skip: %s" % option) 
     except: 
      print("exception on %s!" % option) 
      dict1[option] = None 
    return dict1 

Вот мой config.ini

[SectionOne] 
nom_table: Seche_cheveux 

Вот мой pipeline.py:

import sqlite3 
from datetime import date, datetime 
import os 
from config import * 

TableName = ConfigSectionMap("SectionOne")['nom_table'] 
print TableName 


class sqlite3Pipeline(object): 

    def __init__(self): 
     #initialisation de la base et connexion 
     try: 
      #self.setupDBCon() 
      self.con = sqlite3.connect(os.getcwd() + '/db.sqlite') 
      self.cur = self.con.cursor() 
      self.table_name = TableName 
      self.createTables() 
     except sqlite3.Error as e: 
      raise e 


    def createTables(self): 
     self.createMgTable() 

    def closeDB(self): 
     self.con.close() 

    def __del__(self): 
     self.closeDB() 

    def createMgTable(self, table_name): 
     self.cur.execute("CREATE TABLE IF NOT EXISTS" + table_name + "(\ 
     nom TEXT UNIQUE, \ 
     url TEXT UNIQUE, \ 
     prix TEXT, \ 
     stock TEXT, \ 
     revendeur TEXT, \ 
     livraison TEXT, \ 
     img TEXT UNIQUE, \ 
     detail TEXT UNIQUE, \ 
     bullet TEXT UNIQUE, \ 
     created_at DATE \ 
     )") 

    def process_item(self, item, spider): 
     self.storeInDb(item) 
     return item 

    def storeInDb(self,item): 
     etc.... 
     etc... 

Пожалуйста, можете ли вы рассказать мне, как я могу обрабатывать конфигуратор с помощью scraw-искателя? и, если возможно, скажите мне, что я делаю неправильно

Для информации, когда я запускаю каждый файл отдельно, вся функция печати i включена в работу welll.

ответ

0

ConfigParser.read() имеет тенденцию терпеть неудачу, когда файл конфигурации не найден. Вероятно, есть изменения в текущем рабочем каталоге (os.getcwd()), который не позволяет найти config.ini.

Если файл config.ini находится рядом с config.py, вы можете использовать вместо этого:

Config.read(os.path.join(os.path.dirname(__file__), 'config.ini')) 
+0

Отлично, спасибо вам большое! – Andronaute

Смежные вопросы