Запуск скрипта Scrapy дает мне ошибку SQL - PullRequest
0 голосов
/ 26 октября 2019

Мой скрипт Scrapy выдает ошибку, всего шесть, но я просто расскажу об ошибке SQL здесь. Моя цель - создать веб-страницу, собрать около 200 ссылок и сохранить их в базе данных MySQL (локальной).

Таблица создана нормально (scraped_tb), но она пуста.

Вот код:

# -*- coding: utf-8 -*-



import mysql.connector


class HistPipeline(object):
    def __init__(self):
        self.create_connection()
        self.create_table()

    def create_connection(self):
        self.conn = mysql.connector.connect(
            host='localhost',
            user='root',
            passwd='redacted',
            database='scrape'
        )
        self.curr = self.conn.cursor()

    def create_table(self):
        self.curr.execute("""DROP TABLE IF EXISTS scraped_tb""")
        self.curr.execute("""create table scraped_tb(
                            links text
                            )""")

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

    def store_db(self, item):
        self.curr.execute("""INSERT INTO scraped_tb VALUES (%s)""", (
            item['links'][0]
        ))
        self.conn.commit()

Ошибка (я): я хочу толькоисправьте ошибку SQL в это время.

   Traceback (most recent call last):
      File "c:\users\redacted\pycharmprojects\sc\venv\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
        current.result = callback(current.result, *args, **kw)

File "C:\Users\redacted\PycharmProjects\sc\hist\hist\pipelines.py", line 32, in process_item
        self.store_db(item)

File "C:\Users\redacted\PycharmProjects\sc\hist\hist\pipelines.py", line 37, in store_db
        item['links'][0]

File "c:\users\redacted\pycharmprojects\sc\venv\lib\site-packages\mysql\connector\cursor.py", line 569, in execute
        self._handle_result(self._connection.cmd_query(stmt))

File "c:\users\redacted\pycharmprojects\sc\venv\lib\site-packages\mysql\connector\connection.py", line 590, in cmd_query
        result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))

File "c:\users\redacted\pycharmprojects\sc\venv\lib\site-packages\mysql\connector\connection.py", line 478, in _handle_result
        raise errors.get_exception(packet)

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
    '%s)' at line 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...