当前位置: 首页 > news >正文

酷维网站模版网站免费观看

酷维网站模版,网站免费观看,网站访客记录 是后台做吗,百度一下官方网站前言有点忙#xff0c;没空写东西#xff0c;这是之前写的#xff0c;加了些配图而已 这次要爬的网站是百度指数 正文 一、分析 打开网站(百度指数)#xff0c;呈现出来是这样的 如果搜索的话就需要登陆了#xff0c;如果没有什么特别频繁的请求的话#xff0c;直接登陆复…前言有点忙没空写东西这是之前写的加了些配图而已 这次要爬的网站是百度指数 正文 一、分析 打开网站(百度指数)呈现出来是这样的 如果搜索的话就需要登陆了如果没有什么特别频繁的请求的话直接登陆复制Cookie就完事了 这里以 酷安 为例搜索 这一栏是选择时间范围的拖拽它能将范围选择更广 我将其拖拽至2011调试窗口可以看到请求是个GET请求参数有四个除了 area 其他的都很好理解 切换到 Preview 预览窗口通过分析个人认为比较可疑的几个Key有这些uniqid、all、pc、wise、data 其中data可以看到应该是加密了的all是表示全部数据pc是指pc端wise是移动端这些可以在js文件里找到首先先搞清楚这个像加密了的data是怎么解密的我们现在知道这个数据是json格式那么它处理肯定要从中取出这些data所以重新刷新一下网页目的是为了让所有js都能加载出来然后利用搜索功能从中找。搜索过程就不上图了我是搜索 decrypt找到的首先我用decrypt找到了一个js文件其中有一个名为decrypt的方法 这个js文件中有很多decrypt的搜索结果在不知道多少行处找到了一个名为 fetchThrendIndexLive 的方法这个方法名用我工地英语翻译为 获取趋势指数 这里调用了名为decrypt的方法是不是上面那个我不知道 这次我不打算用charles的替换js文件功能了直接用浏览器的调试功能console就行了 右键js的请求Open in Sources panel 直接在这里下断点然后刷新页面 在这停顿后可以看到两个参数的内容 想要知道这两个参数是什么很简单回到Network看请求里的json其中e参数是datat参数不太清楚是什么。for循环里第一步是先将t字符串按单个字符分割返回的列表保存在n变量里 然后将e也按单字符分割保存到i变量里 a是一个字典r是一个列表 从右边的 Scope 中可以看到 以t的字符长度遍历a中key为t遍历的字符a中value为从t中按索引取的值其中索引为t的字符长度除2后加上当前遍历的索引a[n[o] n[n.length/2 o]) 这里始终没有用到i也就是我们能获取到的data这个i在第二个循环中才被用到 第二个循环是遍历e结果保存在r列表里这里的遍历很容易就看得懂。。我就不分析了自己都头晕直接用python抄一遍就行了 最后是将r列表里的内容合并为一个字符串然后返回 二、整理思路 解密 方法对应python代码为 def decrypt(t,e): n list(t) i list(e) a {} result [] ln int(len(n)/2) start n[ln:] end n[:ln] for j,k in zip(start, end): a.update({k: j}) for j in e: result.append(a.get(j)) return .join(result) 完全照搬。。可能有写地方可以简化但我懒得去处理了最后返回的是这个玩意儿 python运行结果 到这可能都觉得已经解决了可你不知道t这个参数是什么怎么来的这里我就不带各位分析了你么可以自己尝试分析分析我直接说结果之前我就指出了几个可疑的东西其中uniqid在获取t参数需要用到这个t其实是叫ptbk获取这个ptbk的urlhttp://index.baidu.com/Interface/ptbk?uniqid 有一个参数uniqidGET请求返回json内容 获取uniqid和data的urlhttp://index.baidu.com/api/SearchApi/thumbnail?area0word 如果要指定日期只需要在word后面追加startDate、endDate就行 所以可以明确一下思路:1、通过url获取uniqid和data 2、通过uniqid获取ptbk 3、通过ptbk和data解密 解密后的东西就是我们要的数据 三、代码部分 完整代码 import requests import sys import time word_url http://index.baidu.com/api/SearchApi/thumbnail?area0word{} COOKIES def decrypt(t,e): n list(t) i list(e) a {} result [] ln int(len(n)/2) start n[ln:] end n[:ln] for j,k in zip(start, end): a.update({k: j}) for j in e: result.append(a.get(j)) return .join(result) def get_index_home(keyword): headers { User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36, Cookie: COOKIES } resp requests.get(word_url.format(keyword), headersheaders) j resp.json() uniqid j.get(data).get(uniqid) return get_ptbk(uniqid) def get_ptbk(uniqid): url http://index.baidu.com/Interface/ptbk?uniqid{} ptbk_headers { Accept: application/json, text/plain, */*, Accept-Encoding: gzip, deflate, Accept-Language: zh-CN,zh;q0.9, Cache-Control: no-cache, Cookie: COOKIES, DNT: 1, Host: 百度指数, Pragma: no-cache, Proxy-Connection: keep-alive, Referer: 百度指数, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36, X-Requested-With: XMLHttpRequest, } resp requests.get(url.format(uniqid), headersptbk_headers) if resp.status_code ! 200: print(获取uniqid失败) sys.exit(1) return resp.json().get(data) def get_index_data(keyword, start2011-01-03, end2019-08-05): url fhttp://index.baidu.com/api/SearchApi/index?word{keyword}area0startDate{start}endDate{end} headers { Accept: application/json, text/plain, */*, Accept-Encoding: gzip, deflate, Accept-Language: zh-CN,zh;q0.9, Cache-Control: no-cache, Cookie: COOKIES, DNT: 1, Host: 百度指数, Pragma: no-cache, Proxy-Connection: keep-alive, Referer: 百度指数, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36, X-Requested-With: XMLHttpRequest, } resp requests.get(url, headersheaders) if resp.status_code ! 200: print(获取指数失败) sys.exit(1) data resp.json().get(data).get(userIndexes)[0] uniqid data.get(uniqid) ptbk get_index_home(uniqid) while ptbk is None or ptbk : ptbk get_index_home(uniqid) all_data data.get(all).get(data) result decrypt(ptbk, all_data) result result.split(,) print(result) if __name__ __main__: get_index_data(酷安) 输出: END 转载请注明出处
http://wiki.neutronadmin.com/news/391881/

相关文章:

  • 如何自己写一个网站地方网站 o2o
  • 合肥市网站建设肇庆市建设企业网站怎么样
  • 怎么才能建立自己的网站啊深圳百度推广代理
  • 国内做性视频网站阿里巴巴1688登录入口
  • 做网站费用需要分摊吗在线软件开发平台
  • 安卓app整站织梦网站源码html网站建设实例代码
  • 优秀校园网站惠州微网站建设
  • 黄村网站建设一条龙wordpress 建站配置
  • 北京住房和建设部网站首页秦皇岛黄金海岸介绍
  • 哪些行业没有做网站小程序开发教程百度云
  • 茶叶网站建设网页设计制作精准营销的成功案例
  • 网站建设导航栏变化海市科技网站建设
  • 用wordpress建站一定要先有域名和空间吗电商营销推广有哪些?
  • 网站建设责任分工表专注微商推广的网站
  • 13个实用平面设计网站asp网站发邮件
  • 建设银行网站账号怎么注销站长统计app下载免费
  • 有空间怎么做网站网站前端开发得会什么软件
  • 做投票的网站自适应网站 响应式网站
  • 企业网站配色绿色配什么色合适本地网络营销方式
  • wap网站快速开发宠物网页设计素材
  • 如何做网站编辑 沒技术html5基础知识
  • 典型的网站开发人员珠海公司网站域名注册
  • 大淘客cms网站怎么做上海有限公司有哪些
  • 各大网站的软文怎么做湖南省建设厅纪检组长
  • 网站建设进度表怎么做2018年临沂建设局网站
  • 渝中集团网站建设注册公司找黄牛一般多少钱
  • 官方网站建设银行年利息是多少钱wordpress和discuz织梦
  • 郑州网站建设e00网站网站制作网
  • 建设一个网站需要哪些免费域名分发系统
  • 南通智能模板建站如何成为一名设计师