Scrapy不向MySQL插入数据可能有以下几种原因:
settings.py
文件中的数据库连接信息是否正确。例如:MYSQL_HOST = 'localhost'
MYSQL_PORT = 3306
MYSQL_USER = 'your_user'
MYSQL_PASSWORD = 'your_password'
MYSQL_DB = 'your_database'
确保这些信息与您的MySQL数据库实例相匹配。
mysql-connector-python
库。使用以下命令安装:pip install mysql-connector-python
items.py
和pipelines.py
文件。确保您已经正确地导入了所需的库,并在pipelines.py
文件中实现了MySQL插入数据的逻辑。例如:import mysql.connector
class MySqlPipeline:
def __init__(self):
self.conn = mysql.connector.connect(
host=self.settings.get('MYSQL_HOST'),
port=self.settings.get('MYSQL_PORT'),
user=self.settings.get('MYSQL_USER'),
password=self.settings.get('MYSQL_PASSWORD'),
database=self.settings.get('MYSQL_DB')
)
self.cursor = self.conn.cursor()
def process_item(self, item, spider):
query = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
self.cursor.execute(query, (item['field1'], item['field2']))
self.conn.commit()
return item
def close_spider(self, spider):
self.cursor.close()
self.conn.close()
settings.py
文件中,将MYSqlPipeline
添加到ITEM_PIPELINES
设置中:ITEM_PIPELINES = {
'your_project_name.pipelines.MySqlPipeline': 300,
}
领取专属 10元无门槛券
手把手带您无忧上云