Невозможно записать очищенные данные в mysql - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь записать данные лома в базу данных mysql, но для начальных страниц он записывает данные без ошибок, но после сканирования некоторых страниц он выдает ошибку и ничего не записывает в базу данных mysql. Это ошибка, которую я получаю: -

  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/scrapy/utils/defer.py", line 157, in f
    return deferred_from_coro(coro_f(*coro_args, **coro_kwargs))
  File "/Users/divyanshu/scrapy_bot/review_bot/pipelines.py", line 123, in process_item
    status = sbr.insert_into(self.session, spider, outputs)
  File "/Users/divyanshu/scrapy_bot/review_bot/database/scrapy_bot_reviews.py", line 17, in insert_into
    filter(and_(cls.source_id==spider.source_id,cls.review_link==outputs["review_link"]))\
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3397, in first
    ret = list(self[0:1])
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3171, in __getitem__
    return list(res)
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3503, in __iter__
    return self._execute_and_instances(context)
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3525, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3540, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3518, in _connection_from_session
    conn = self.session.connection(**kw)
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1141, in connection
    execution_options=execution_options,
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1147, in _connection_for_bind
    engine, execution_options
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
    self._assert_active()
  File "/Users/divyanshu/myenv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 296, in _assert_active
    code="7s2a",
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: 'charmap' codec can't encode character '\u200e' in position 43: character maps to <undefined> (Background on this error at: http://sqlalche.me/e/13/7s2a)

Я сделал таблицу с этой конфигурацией: -

CREATE TABLE `scrapy_bot_reviews` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `master_source_id` int(11) DEFAULT '10',
  `movie_id` int(11) DEFAULT NULL,
  `process_id` int(11) DEFAULT '0',
  `ner_name` text,
  `es_name` text,
  `source` varchar(255) DEFAULT '',
  `source_id` int(11) DEFAULT NULL,
  `review_link` varchar(2040) DEFAULT '',
  `snippet` varchar(5100) DEFAULT '',
  `img_url` varchar(2040) DEFAULT '',
  `title` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `mmr_row_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `movie_id` (`movie_id`),
  KEY `source_id` (`source_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1146 DEFAULT CHARSET=utf8;

Я использовал utf16 и utf32, но ошибка не решается . Может ли кто-нибудь мне в этом помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...