tiger吴 发表于 2020-7-13 20:23:43

模拟网页登录操作

未登录鱼C论坛账号在交流区发帖会弹出登录验证页面我用下面的代码模拟登录出错,求改正
from urllib.request import HTTPPasswordMgrWithDefaultRealm,HTTPBasicAuthHandler,build_opener
from urllib.error import URLError

username='xxxxxxx'
passward='xxxxxxxxx'
url='https://fishc.com.cn/forum.php?mod=post&action=newthread&fid=173'

p=HTTPPasswordMgrWithDefaultRealm()
p.add_password(None,url,username,passward)
auth_handler=HTTPBasicAuthHandler(p)
opener=build_opener(auth_handler)
try:
    result=opener.open(url)
    html=result.read().decode('utf-8')
    print(html)
except URLError as e:
    print(e.reason)
File "C:/Users/tiger/PycharmProjects/spider/test2.py", line 20, in <module>
    html=result.read().decode('utf-16')
UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 2254-2255: illegal UTF-16 surrogate

Process finished with exit code 1

_2_ 发表于 2020-7-13 20:42:44

你在哪里用 utf-16 解码的?
你发的代码里没有报错内容的代码

suchocolate 发表于 2020-7-13 20:42:58

html = result.read().decode('gbk')

_2_ 发表于 2020-7-13 20:43:51

suchocolate 发表于 2020-7-13 20:42
html = result.read().decode('gbk')

……你看这里面都没有 Line 20{:10_269:}

suchocolate 发表于 2020-7-13 20:46:05

_2_ 发表于 2020-7-13 20:43
……你看这里面都没有 Line 20

我也随便写写,估计他的代码不全,或者报错也是给的对不上当前的代码。

_2_ 发表于 2020-7-13 20:46:40

suchocolate 发表于 2020-7-13 20:46
我也随便写写,估计他的代码不全,或者报错也是给的对不上当前的代码。

对,
弄的我很懵逼{:10_266:}

tiger吴 发表于 2020-7-13 20:47:41

suchocolate 发表于 2020-7-13 20:42
html = result.read().decode('gbk')

    html=result.read().decode('utf-gbk')
LookupError: unknown encoding: utf-gbk

老板实测下啊,不行啊

tiger吴 发表于 2020-7-13 20:49:30

_2_ 发表于 2020-7-13 20:42
你在哪里用 utf-16 解码的?
你发的代码里没有报错内容的代码

试了下utf-16,代码和报错内容不匹配
额,这个不是重点

liuzhengyuan 发表于 2020-7-13 20:49:59

tiger吴 发表于 2020-7-13 20:47
老板实测下啊,不行啊

1,是 gbk 不是 utf-gbk !

2,代码没有发全

tiger吴 发表于 2020-7-13 20:51:57

suchocolate 发表于 2020-7-13 20:46
我也随便写写,估计他的代码不全,或者报错也是给的对不上当前的代码。

我没看清,又试了下可以的

_2_ 发表于 2020-7-13 20:51:59

tiger吴 发表于 2020-7-13 20:49
试了下utf-16,代码和报错内容不匹配
额,这个不是重点

看了一下报错信息应该不是这个文件的错误,
麻烦把 Python 报错的那个代码发过来

_2_ 发表于 2020-7-13 20:52:43

tiger吴 发表于 2020-7-13 20:47
老板实测下啊,不行啊

gbk 不是 utf 里的,
直接 "gbk" 就可以{:10_269:}
略略略

_2_ 发表于 2020-7-13 20:53:59

tiger吴 发表于 2020-7-13 20:49
试了下utf-16,代码和报错内容不匹配
额,这个不是重点

常用的要么是 utf-8 要么就是 gbk 别的很少用到

tiger吴 发表于 2020-7-13 20:59:05

liuzhengyuan 发表于 2020-7-13 20:49
1,是 gbk 不是 utf-gbk !

2,代码没有发全

代码发全了,至于你们说的行数对不上,是因为我的程序最开始几行都会加上几行没用的代码,我没有复制过去的原因

tiger吴 发表于 2020-7-13 21:00:25

_2_ 发表于 2020-7-13 20:53
常用的要么是 utf-8 要么就是 gbk 别的很少用到

额,编码问题还是很懵逼,utf-8见的多点,其余的不认识

tiger吴 发表于 2020-7-13 21:03:30

_2_ 发表于 2020-7-13 20:52
gbk 不是 utf 里的,
直接 "gbk" 就可以
略略略

感谢各位热心大佬帮忙解决问题
页: [1]
查看完整版本: 模拟网页登录操作