weibo-crawler icon indicating copy to clipboard operation
weibo-crawler copied to clipboard

运行报错,数据无法写入mysql数据库

Open pancy-pearl opened this issue 4 years ago • 4 comments

Traceback (most recent call last): File "E:/weiboSpider/weiboSpider.py", line 910, in mysql_insert sql, [tuple(data.values()) for data in data_list]) File "F:\Miniconda\lib\site-packages\pymysql\cursors.py", line 182, in executemany self.rowcount = sum(self.execute(query, arg) for arg in args) File "F:\Miniconda\lib\site-packages\pymysql\cursors.py", line 182, in self.rowcount = sum(self.execute(query, arg) for arg in args) File "F:\Miniconda\lib\site-packages\pymysql\cursors.py", line 148, in execute result = self._query(query) File "F:\Miniconda\lib\site-packages\pymysql\cursors.py", line 310, in _query conn.query(q) File "F:\Miniconda\lib\site-packages\pymysql\connections.py", line 548, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "F:\Miniconda\lib\site-packages\pymysql\connections.py", line 775, in _read_query_result result.read() File "F:\Miniconda\lib\site-packages\pymysql\connections.py", line 1156, in read first_packet = self.connection._read_packet() File "F:\Miniconda\lib\site-packages\pymysql\connections.py", line 725, in _read_packet packet.raise_for_error() File "F:\Miniconda\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "F:\Miniconda\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.DataError: (1406, "Data too long for column 'id' at row 1")

尝试更改数据的长度,但还是不行,望予以指导,谢谢

pancy-pearl avatar Feb 04 '21 16:02 pancy-pearl

已解决,打扰了

pancy-pearl avatar Feb 05 '21 06:02 pancy-pearl

如果方便,能否告知解决方法,方便后来的使用者,谢谢。

dataabc avatar Feb 05 '21 07:02 dataabc

好的,我在评论下写一下。您的项目给了我很大的帮助,非常感谢。 大家在使用新旧版本的时候一定要注意新旧爬虫爬取的数据的字段有变动,出现我这样的错误应该是由于字段设置的不统一造成的,如果在原有基础上使用新版本的爬虫,最好删除或转移原有的数据库,以免出现以上情况。

借此机会,我想说一下我在使用您的不同版本的爬虫时遇到的一些问题和想法:您的爬虫有cookie版和免cookie版,以数据库为例,经过多次更新随着爬取功能的增多,字段也随之增多,不同版本的相同意义字段有不同的名称,版本之间不连贯性这造成了我这次出错的主要原因。同时,您的两个版本的爬取微博的时间精确度是不一样的,一个精确到天,一个精确到分,若能统一标准,或能给到个性化的修改方案,也可以大大提高代码的可用性与用户体验。以上是我的一些不成熟的想法及建议,希望能给您的项目提供些许帮助。向您的贡献再次表达感谢

------------------ 原始邮件 ------------------ 发件人: "Chen Lei"<[email protected]>; 发送时间: 2021年2月5日(星期五) 下午3:27 收件人: "dataabc/weibo-crawler"<[email protected]>; 抄送: "pancy-pearl"<[email protected]>; "Author"<[email protected]>; 主题: Re: [dataabc/weibo-crawler] 运行报错,数据无法写入mysql数据库 (#169)

如果方便,能否告知解决方法,方便后来的使用者,谢谢。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

pancy-pearl avatar Feb 05 '21 08:02 pancy-pearl

感谢回复。

两个版本数据库不同问题我也考虑过,因为它们字段不同,所以就设计了两个不同的数据表,后面会再考虑是否统一,也会继续优化时间问题。

再次感谢回复和建议。

dataabc avatar Feb 05 '21 08:02 dataabc