作者laiDark (C)
看板Python
标题[问题] (已解决)爬虫图片遇到编码问题(日文)
时间Sun Jul 29 12:14:51 2018
------ 目前已解决-----
有热心的版友跟我站内信後
发现是网页编码的问题
站内给我修改过的code
是可以抓的,非常感谢这位版友
也谢谢底下各位的推文与建议 Q_Q
-----------------------
各位版上的前辈们好:
昨天晚上临时想写一个小爬虫
抓一个日本网站上的图片
作业环境:windows 8.1
python版本:3.7.0
我是直接用Notepad++ 写
用windows console 下指令去执行
结果遇到有图片是用日文命名
导致UnicodeEncodeError
错误讯息截图:
https://imgur.com/Zw5wXnn
(这个截图不知道有没有用,没用的话我再删掉)
Code:
https://pastebin.com/681VVgzb
我只撷取抓图片那边的code
前面的code都只是过滤找出img的tag而已,应该是没问题
然後用成 "
http://abc.jpg"丢到urlretrieve抓到我设定的资料夹
这个方法也是我在网路上找到的
主要是i['src'] 会有日文字出现 (日文命名的图片档)
下面那一行key
是我之前专题的组员时候,要用指令下关键字(中文)
丢到该网站搜寻,把搜寻的结果抓下来
当时发现网址会把关键字转成%B2%R2%45类似这样
我的组员使用urllib.parse.quote将中文转成那样并入url
我参考组员的code
因为我想要转成%xx%bb这个样子
丢到urlretrieve抓
但是先试印出来的结果不太对
图片:
https://imgur.com/TT3VYAH
图片网址在浏览器上直接是
http://xxx.com/日文4.jpg
我撷取後半日文.jpg 贴在记事本
比对用quote印出来 (console)
发现整个不一样...
因为有试过用记事本的网址贴到浏览器,可以正确显示那个图片
但quote不一样也无解
我在stackoverflow 也试着用关键字爬过
其中这一篇:
https://goo.gl/JYJrgW
提到windows的状况
难道只能修改作业系统或是跳槽到linux吗....
没有只改code就能解决的办法吗
这个问题意想不到我弄了一个晚上到现在都还没用好
还麻烦有类似经验的大大帮忙了,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.123.238.66
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1532837695.A.65D.html
1F:推 eight0: 既然是 quot 的问题,你应该把 quot 相关的程式码贴上来 07/29 15:59
e大,你说的quot 难道是指我用的quote << 不过这个我也只有用那一行
※ 编辑: laiDark (140.123.238.66), 07/29/2018 16:22:37
2F:→ coeric: 档名是日文应该是没问题 07/29 18:46
3F:→ coeric: 忘了我是Linux,windows我就不知道了..... 07/29 18:46
4F:→ coeric: 用utf-8应该是没问题阿 07/29 18:47
5F:→ coeric: 应该是在cmd视窗下的关系 那是big5 07/29 18:51
c大,有版友建议我cmd改utf8~ 但结果还是一样QQ
6F:推 TitanEric: 用Ubuntu on bash一切问题就解决 powershell一样会有编 07/29 19:10
7F:→ TitanEric: 码问题 07/29 19:10
※ 编辑: laiDark (140.123.238.66), 07/29/2018 19:21:46
8F:→ stucode: 应该跟 cmd 的 encoding 无关,更何况 3.6 过後 Windows 07/29 20:24
9F:→ stucode: 也预设是 UTF-8。 07/29 20:24
※ 编辑: laiDark (140.123.238.66), 07/29/2018 20:30:31
11F:→ coeric: cmd我倒是没改过,但因为我曾经在windows遇过无解的 07/29 20:30
12F:→ coeric: 就试着强迫自己改Linux,似乎问题就直接解了 07/29 20:30
13F:→ coeric: code预设utf-8没问题 但有时在print(show)时 会出事 07/29 20:31
c大,因为我是昨晚临时想写,就没有另外装linux ~
(python notepad++ 都是昨天才装的XD)
只是这支程式是想要给其他朋友使用,才在windows底下写
我也是第一次在windows下写python,不然我之前都是用linux
只是那台linux电脑坏掉,现在也是用笔电先垫着....
※ 编辑: laiDark (140.123.238.66), 07/29/2018 20:37:22
14F:→ coeric: 我用Linux主机定期抓档,很常遇到日文,都没问题照样存档 07/29 20:32
15F:推 stucode: Windows 下的文字编码问题有时候的确蛮麻烦的,经验上 07/29 20:42
16F:→ stucode: 主要都在显示方面,所以我後来几乎都直接写进 log 档。 07/29 20:42
17F:→ coeric: 所以後来我把显示(print)部份拿掉,大多是没问题 07/29 23:44
18F:推 Yshuan: log到file +1 07/30 10:32