百度文档解码

前天爬取百度文档,如下图所示:


发现目标信息要经过两次转码才能获取到目标明码信息,


但是这个在python里面就比较尴尬,因为python经过一次解码后就会变成字符串,就无法进行二次编码,然后经过大神指点,发现可以这样,这里先放代码,以后有时间再解释:

import requests
from urllib3 import disable_warnings
import re
disable_warnings()#这个你可以百度
def getAnswer(url):

    r=requests.get(url,verify=False)#获取到url的源码
    ans=re.findall("queinfo = (.*?)queinfo",r.text,re.S)[0]#获取到题目所在的信息

    a=ans.encode('utf-8').decode('unicode-escape')#对题目所在的信息进行三次解码
    c=a.encode('utf-8').decode('unicode-escape')
    c1=c.encode('utf-8').decode('unicode-escape')
    return c1#返回题目信息
url='https://wenku.baidu.com/view/77d76449ce84b9d528ea81c758f5f61fb7362883.html'
ans=getAnswer(url)
print(ans)

其中的unicode-escape可以看成二进制和字符串的转换。就是将得到的bite编码不经过任何改变变成字符串。比如
import base64,requests
picture_url='https://static01.nyt.com/images/2018/06/22/us/22mothers1/merlin_139859520_465d5980-2429-4bf5-bcbc-8ffed8cc8190-articleLarge.jpg?quality=75&auto=webp&disable=upscale'
r = requests.get(picture_url, verify=False)
picture_code = base64.b64encode(r.content)
picture_str_code=picture_code.decode('unicode-escape')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值