绕过加密利用请求获取的数据爬取[百度指数]加密数据

绕过加密利用请求获取的数据爬取[百度指数]加密数据

引用:
百度指数爬虫实战(作者:Nevanancy)

本文只是对Nevanancy博主的浅陋学习,欢迎指正

宅家期间,有朋友在做关于【比特币搜索指数与股市价格波动关系】的课题,找到我帮忙爬虫,于是有了以下过程

  1. 获取【百度指数】网页数据
  2. Python解密
  3. Excel数据呈现

获取【百度指数】网页数据

  1. 将关键词输入该网站百度指数
  2. 打开开发者工具,查看Network栏目:绕过加密利用请求获取的数据爬取[百度指数]加密数据_第1张图片
  3. 查找关键词’word='或者’index?area=0&word=0 '(后者可以在时间轴变长的情况下找到需要的数据,前者只能找到默认的时间轴
  4. 将’data’保存下来以后要用
  5. 查找’ptbk’同样的到一串data数据,该’data’是密钥
    绕过加密利用请求获取的数据爬取[百度指数]加密数据_第2张图片

Python解密

主要任务是把以上的结果代入python代码中

keys=('xxxxxx') #xxxxx是密钥
data=('xxxxxx') #xxxxx是源码
def decrypt(keys,data):#解密函数
   half=len(keys)//2  #取解码长度整除以2
   pre=keys[:half] #取前半部分的 keys
   pro=keys[half:] #取后半部分的keys
   dic={pre[i]:pro[i] for i in range(half)} #逐字节读取解码内容
   o=''
   for d in data:
       try:
           o+=str(dic[d]) #从data中截取每个字节的字母,对应到dic字典里面每个字节
       except Exception as e:
           pass
   #res=''.join([dict[d] for d in data])
   print (o)
   print('\n',dic)
   print ('\n',half)
   return o

Excel呈现数据

  1. 一般通过Python运算的出的数据都是list形式的,都是用逗号分割开如下
    在这里插入图片描述
  2. 用excel【转置】
    绕过加密利用请求获取的数据爬取[百度指数]加密数据_第3张图片
  3. 得到数据如下,比较好看
    绕过加密利用请求获取的数据爬取[百度指数]加密数据_第4张图片
    4.与百度指数网站图表对比
    绕过加密利用请求获取的数据爬取[百度指数]加密数据_第5张图片

再次感谢Nevanancy

你可能感兴趣的:(Python)