我想将图片的二进制数据 写入mysql数据库 请问哪位大佬能帮忙
现有图片爬虫一只 能够采集大量的数据{:10_256:}
这是爬虫文件的github仓库:https://github.com/Hope-wind/python/blob/master/%E5%9B%BE%E7%89%87/%E6%AC%A1%E5%85%83/scrapy.py
但是硬盘一直在咆哮 让我别老放她身上
{:10_244:}
问题:我想把图片的二进制数据放到mysql数据库
请问哪位大佬能够帮忙?{:10_254:} 图片并不适合用来存放进数据库,
通常情况下,数据库保存的是图片存放的路径,
假设以上你已经知晓,但还是期望图片内容本身存放入数据库,
代码中55行,你已经得到图片的二进制数据了
简单些来讲,你可以直接把这个二进制数据插入数据库中就可以了
insert 语句 插入数据sql语句应该没问题吧
高级一点, 你需一个二进制文件缓存队列,因为往数据库写操作也很慢的,
下载归下载,写入归写入.
孤独的嫖客 发表于 2021-1-2 14:49
图片并不适合用来存放进数据库,
通常情况下,数据库保存的是图片存放的路径,
假设以上你已经知晓,但还是期 ...
所以我该另外写一个专门用来进行写入的函数吗(用多线程){:10_256:} 孤独的嫖客 发表于 2021-1-2 14:49
图片并不适合用来存放进数据库,
通常情况下,数据库保存的是图片存放的路径,
假设以上你已经知晓,但还是期 ...
还有就是 不知为何我无法使用pymysql
这是报错信息
Traceback (most recent call last):
File "/home/wallen/.local/lib/python3.9/site-packages/pymysql/connections.py", line 569, in connect
sock = socket.create_connection(
File "/usr/lib/python3.9/socket.py", line 822, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.9/socket.py", line 953, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/wallen/demo.py", line 3, in <module>
db = pymysql.connect("lolcalhost","root","0xFFFFFFFF","dbforpymysql")
File "/home/wallen/.local/lib/python3.9/site-packages/pymysql/__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "/home/wallen/.local/lib/python3.9/site-packages/pymysql/connections.py", line 327, in __init__
self.connect()
File "/home/wallen/.local/lib/python3.9/site-packages/pymysql/connections.py", line 619, in connect
raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'lolcalhost' ( Name or service not known)") 风尘岁月 发表于 2021-1-2 19:08
还有就是 不知为何我无法使用pymysql
这是报错信息
Traceback (most recent call last):
假设你的数据库可以正常远程的前提下,你的代码
db = pymysql.connect("lolcalhost","root","0xFFFFFFFF","dbforpymysql")
建议修改为这种格式
# 连接数据库
connect = pymysql.connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='python',
charset='utf8'
)
然后看看会不会报错
然后数据库插入/更新问题
每插入一条都执行一个SQL语句,那么需要执行除了连接和关闭之外的所有步骤N次,这样是非常耗时的,可选的优化方式:
在每个insert语句中写入多行,批量插入
可以参考这个帖子
https://blog.csdn.net/colourless/article/details/41444069
孤独的嫖客 发表于 2021-1-2 22:16
假设你的数据库可以正常远程的前提下,你的代码
建议修改为这种格式
还是不行啊 大佬
而且看了那篇帖子 我也无法安装MySQL-python
我的是https://pypi.tuna.tsinghua.edu.cn/simple镜像源 风尘岁月 发表于 2021-1-3 08:09
还是不行啊 大佬
而且看了那篇帖子 我也无法安装MySQL-python
我的是https://pypi.tuna.tsinghua.edu.c ...
数据库是否支持远程,这个你检查了吗?
可以用可视化数据库客户端来快速测试数据库连接
常见软件Navicat
我举例的帖子,没说让你换模块
只是让你参考他写的sql语句
孤独的嫖客 发表于 2021-1-2 22:16
假设你的数据库可以正常远程的前提下,你的代码
建议修改为这种格式
我觉得应该放弃这种方式 改用JDBC来操作数据库了
孤独的嫖客 发表于 2021-1-3 08:13
数据库是否支持远程,这个你检查了吗?
可以用可视化数据库客户端来快速测试数据库连接
常见软件Navicat
...
数据库连线没有问题
直接将图片以二进制写入数据库?
别吧,一张图片几十K,确定不先压缩一下?
使用zlib压缩二进制,然后使用base64编码,以字符串方式存入数据库
页:
[1]