百度文档解码

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


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


但是这个在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')

猜你喜欢

转载自blog.csdn.net/qq_41861526/article/details/80586940