找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 498|回复: 9

[求助] 我想批量URL编码,但是结果一直不对,请各位大神指导下

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916 发表于 2018-5-7 14:51:02 | 显示全部楼层 |阅读模式
代码如下:
#coding=utf-8
from urllib import quote
import linecache
def get_urlcode(key):
    a= quote(key)
    op_word_txt.write("%s\n"%a)
    return key
if __name__=="__main__":
    url_list =  linecache.getlines('bianma_key.txt')
    op_word_txt = open('bianma_jiegou.txt','a')
    op_word_txt.write
    for x in url_list:
        print get_urlcode(x.strip())




回复

使用道具 举报

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916  楼主| 发表于 2018-5-7 14:51:20 | 显示全部楼层
比方说,广州市良顺机械设备有限公司  这个编码应该是
%E5%B9%BF%E5%B7%9E%E5%B8%82%E8%89%AF%E9%A1%BA%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8
但是用这个软件生成的是
%B9%E3%D6%DD%CA%D0%C1%BC%CB%B3%BB%FA%D0%B5%C9%E8%B1%B8%D3%D0%CF%DE%B9%AB%CB%BE
回复 支持 反对

使用道具 举报

0

主题

297

帖子

297

积分

侠客

积分
297
sheeboard 发表于 2018-5-7 15:10:08 | 显示全部楼层
反了
Screenshot from 2018-05-07 15-09-34.png
回复

使用道具 举报

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916  楼主| 发表于 2018-5-7 15:26:09 | 显示全部楼层

大哥,是哪个地方反了?怎么修改?
我是运行时把需要编码或者解码放到 key.txt里面,双击运行就会生成一个jieguo.txt出现结果。

bianma_jiegou.txt

163 Bytes, 下载次数: 1

bianma_key.txt

26 Bytes, 下载次数: 4

批量UrlEncode编码工具.py

364 Bytes, 下载次数: 1

回复 支持 反对

使用道具 举报

0

主题

297

帖子

297

积分

侠客

积分
297
sheeboard 发表于 2018-5-7 15:46:29 | 显示全部楼层
是我没看清楚,
原因是bianma_key.txt的编码也要utf8,windows系统文本编辑器另存一下试试。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916  楼主| 发表于 2018-5-7 16:06:55 | 显示全部楼层
本帖最后由 wufan0916 于 2018-5-7 16:13 编辑
sheeboard 发表于 2018-5-7 15:46
是我没看清楚,
原因是bianma_key.txt的编码也要utf8,windows系统文本编辑器另存一下试试。 ...

另存为UTF8之后,结果确实有改变:
utf8:%EF%BB%BF%E5%B9%BF%E5%B7%9E%E5%B8%82%E8%89%AF%E9%A1%BA%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8

但是和我想要的结果还是有差别:
%E5%B9%BF%E5%B7%9E%E5%B8%82%E8%89%AF%E9%A1%BA%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8
utf8:多出了最前面的  “%EF%BB%BF”

不知道是哪一步出现了问题
回复 支持 反对

使用道具 举报

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916  楼主| 发表于 2018-5-7 16:23:22 | 显示全部楼层
wufan0916 发表于 2018-5-7 16:06
另存为UTF8之后,结果确实有改变:
utf8:%EF%BB%BF%E5%B9%BF%E5%B7%9E%E5%B8%82%E8%89%AF%E9%A1%BA%E6%9C ...

应该是自带的BOM,需要怎么改动,才能去除EF BB BF开头的BOM呢
回复 支持 反对

使用道具 举报

0

主题

297

帖子

297

积分

侠客

积分
297
sheeboard 发表于 2018-5-8 08:07:41 | 显示全部楼层
这个试试
with open('bianma_key.txt','rt',encoding='gb2312') as f:
   ...:     data=f.read()
urllib.parse.quote(data)
Out[12]: '%E5%B9%BF%E5%B7%9E%E5%B8%82%E8%89%AF%E9%A1%BA%E6%9C%BA%E6%A2%B0%E8%AE%BE%E5%A4%87%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8'
回复 支持 反对

使用道具 举报

1

主题

6

帖子

6

积分

贫民

积分
6
wufan0916  楼主| 发表于 2018-5-8 12:07:20 | 显示全部楼层
是直接加在最后面吗?不好意思,我是小白,谢谢你这么耐心教我了

回复 支持 反对

使用道具 举报

0

主题

297

帖子

297

积分

侠客

积分
297
sheeboard 发表于 2018-5-8 12:46:51 | 显示全部楼层
这样的,不过还可以改。

Screenshot from 2018-05-08 12-44-21.png
Screenshot from 2018-05-08 12-44-38.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表