python base64.b64encode()问题 !!!!
本帖最后由 我来上学啦 于 2021-1-3 01:37 编辑我在看小甲鱼的视频,关于爬取煎蛋网的妹子图
现在煎蛋网的页数信息是用base64 加密的
比如说现在页数是第114页
a = base64.b64encode(b'114')
print(a)
输出结果是 b'MTE0'(算获取成功了)
但是如果需要获取10页的内容的话就出现了一些问题
pages = 114
b64_pages = []
for i in range(10):
pages -= 1
a = base64.b64encode(b'pages')
b64_pages.append(a)
...然后a就输出了10个‘pages‘的加密内容出来了
print(b64_pages)的输出内容是 ['b'cGFnZXM='','b'cGFnZXM=''.......]
求助大家要怎么在for循环里面能正确输出 b'MTE0'这个结果来
所以说了大半天,你是列表提取元素不会?
挨个打印list中的元素还是用for啊
重写一个for循环读取b64_pages的内容不就行了
孤独的嫖客 发表于 2021-1-3 01:53
所以说了大半天,你是列表提取元素不会?
挨个打印list中的元素还是用for啊
重写一个for循环读取b64_pages ...
是转换base64编码不会,在for循环里面转换,输出了10个一样的内容 我来上学啦 发表于 2021-1-3 02:26
是转换base64编码不会,在for循环里面转换,输出了10个一样的内容
a = base64.b64encode(b'pages')
引号内的文字算作字符串,这个,你滴明白? 基础没学好,没理解变量和字符串 孤独的嫖客 发表于 2021-1-3 04:13
a = base64.b64encode(b'pages')
引号内的文字算作字符串,这个,你滴明白?
我知道,我意思是要怎么把for循环的10个数字依次当变量传递进括号里
我前面不是用pages -= 1 得到了10个数字嘛
然后我把pages这个变量传进去
结果base64.b64encode(b`pages`)把我需要传入的这个变量当成了字符串输出了10次
我的问题是这个b64encode()要怎么输入括号里的内容才不会被当成字符串编码了
何必呢 观察发现你这个base64是不用等号来补位的 既然如此
你写一个base64的子类让其可以直接-1
base64是 0到9 a到z 满36进一位懂吧 搞个36进制的正整数减法运算
我来上学啦 发表于 2021-1-3 10:54
我知道,我意思是要怎么把for循环的10个数字依次当变量传递进括号里
我前面不是用pages -= 1 得到了10个 ...
bytes('114','utf-8')
或者
'114'.encode() import base64
pages = 114
b64_pages = []
for i in range(10):
pages -= 1
a = base64.b64encode(bytes(f'{pages}','utf-8'))
b64_pages.append(a)
print(b64_pages)
疾风怪盗 发表于 2021-1-3 11:30
谢谢,大哥牛逼
页:
[1]