一、简单说明

企业相关信息对于预测企业发展状况十分重要。基于公司业务,最近分析企业信息查询网站,了解了很多相关的网站,有全国企业信用信息公示, 天眼查,企查查,启信宝,水滴信用,百度企业信用,阿土伯等企业查询网站。今天以百度企业信用为例,研究这个网站的js反爬措施

二、发现问题

通过在搜索框中输入小米科技有限责任公司,得到企业列表页面

公司详情页面url为:

发现url中有关键标识pid,似乎是js生成的。如果我们能够生成pid参数,是不是就能少发送次请求,直接通过url拿到详情页公司信息。想象很丰富,现实很残酷啊!再次请求就能发现,每次生成的pid参数都是变化的,不过也无伤大雅,只是多发送一次请求。

进入到详情页面,关键性信息全都是ajax动态加载,这样拿到完整信息发送的请求大量增加,相对的大大减少分析数据时间,

进一步分析所有ajax请求,发现一个令人激动的现象,所有ajax请求url两个关键参数是一样的,例如基本信息和变更记录的url

我们只需要拿到pid和tot两个关键参数,岂不是可以拿到所有的公司信息!接下来开始我们的js研究破解之路

三、分析破解js

pid和tot参数似乎不是简单的基于加密算法生成的,我们在全局搜索找到生成参数的js,并在ch'rome中调试生成过程。

经过一番艰苦的奋斗,终于不负苦心人。终于找到了,pid在详情页面请求的js中

tk的生成同样存在

再次刷新,发现和前面一篇的openlaw网站加密类似,tk的生成每次都在变化,所以不能单纯的通过python生成jk抓取数据。使用PyExecJS(Python3)运行js生成必要数据。避免麻烦直接上代码吧!

import re
import time
import requests
from lxml import etree
from utils.get_proxy import func_proxy
from utils.headers import headers
import execjs
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)ip_list = []
ip_list.append(func_proxy())
resp = requests.get(url="https://xin.baidu.com/s?q=%E5%B0%8F%E7%B1%B3%E7%A7%91%E6%8A%80&t=0", headers=headers, proxies=ip_list[0], verify=False)
response = resp.content.decode()
html = etree.HTML(response)
url = "https://xin.baidu.com" + html.xpath('//*[@class="zx-list-wrap"]/div[1]//a[@class="zx-list-item-url"]/@href')[0]
resp = requests.get(url, headers=headers, proxies=ip_list[0], verify=False)
text = resp.text
response = resp.content.decode()
html2 = etree.HTML(response)
d = html2.xpath('//*[@id="baiducode"]/text()')[0]
pid = eval(re.findall(r'"pid":(.*?)\,.*?"defTags"', text, re.S)[0])
id1, att = re.findall(r"document\.getElementById\('(.*?)'\)\.getAttribute\('(.*?)'\)", text)[0]
tk_func = "function mix(" +re.findall(r'mix\((.*?)\(function', text, re.S)[0]
'//*[@id="baiducode"]/text()'
print(tk_func)
tk = re.findall(att + r'="(.*?)"\>', text)[0]
print(tk, d)
tk = execjs.compile(tk_func).call('mix', tk, d)
print(tk)
time1 = int(time.time() * 1000)
url1 = "https://xin.baidu.com/detail/basicAjax?pid={}&tot={}&_={}".format(pid, tk, time1)
resp1 = requests.get(url1, headers=headers, proxies=ip_list[0])
print(resp1.content.decode('unicode_escape'))

得到的结果如下:

{'http': 'http://42.232.197.9:26360'}
function mix(tk, bid) {var tk = tk.split("").reverse().join("");return tk.substring(0, tk.length - bid.length);}
626216235492OUQmETa1XojxMQSJt*Fll8xus-CsToUa42yy 294532612626
yy24aUoTsC-sux8llF*tJSQMxjoX1aTEmQUO
{"status":0,"msg":"","data":{"entLogo":"\/static\/pc\/photo\/logo.png","shareLogo":"https:\/\/ts.bdimg.com\/biz\/ecom\/vmp\/zx_ent_logo_default@2x.png","entName":"小米科技有限责任公司","bdCode":294532612626,"openStatus":"开业","entType":"有限责任公司(自然人投资或控股)","isClaim":4,"claimUrl":"-","benchMark":true,"regNo":"91110108551385082Q","orgNo":"55138508-2","taxNo":"110108551385082","scope":"技术开发;货物进出口、技术进出口、代理进出口;销售通讯设备、厨房用品、卫生用品(含个人护理用品)、日用杂货、化妆品、医疗器械I类、II类、避孕器具、玩具、体育用品、文化用品、服装鞋帽、钟表眼镜、针纺织品、家用电器、家具(不从事实体店铺经营)、花、草及观赏植物、不再分装的包装种子、照相器材、工艺品、礼品、计算机、软件及辅助设备、珠宝首饰、食用农产品、宠物食品、电子产品、摩托车、电动车、自行车及零部件、智能卡、五金交电(不从事实体店铺经营)、建筑材料(不从事实体店铺经营);维修仪器仪表;维修办公设备;承办展览展示活动;会议服务;筹备、策划、组织大型庆典;设计、制作、代理、发布广告;摄影扩印服务;文艺演出票务代理、体育赛事票务代理、展览会票务代理、博览会票务代理;手机技术开发;手机生产、手机服务(限海淀区永捷北路2号二层经营);从事互联网文化活动;出版物零售;出版物批发;销售第三类医疗器械;销售食品;零售药品;广播电视节目制作。(企业依法自主选择经营项目,开展经营活动;从事互联网文化活动、出版物批发、出版物零售、销售食品、广播电视节目制作、零售药品、销售第三类医疗器械以及依法须经批准的项目,经相关部门批准后依批准的内容开展经营活动;不得从事本市产业政策禁止和限制类项目的经营活动。)","regAddr":"北京市海淀区清河中街68号华润五彩城购物中心二期13层","legalPerson":"雷军","startDate":"2010-03-03","openTime":"2010-03-03 至 2030-03-02","annualDate":"2018-06-20","regCapital":"185,000万(元)","industry":"其他科技推广和应用服务业","telephone":"6060****-1000","district":"北京市海淀区","authority":"北京市工商行政管理局海淀分局","realCapital":"-","orgType":"企业法人","scale":"-","directors":[{"name":"雷军","gender":"未知","title":"董事长","img":"\/static\/pc\/photo\/directors.png"},{"name":"林斌","gender":"未知","title":"董事","img":"\/static\/pc\/photo\/directors.png"},{"name":"刘芹","gender":"未知","title":"董事","img":"\/static\/pc\/photo\/directors.png"},{"name":"许达来","gender":"未知","title":"董事","img":"\/static\/pc\/photo\/directors.png"},{"name":"黎万强","gender":"未知","title":"监事","img":"\/static\/pc\/photo\/directors.png"},{"name":"雷军","gender":"未知","title":"经理","img":"\/static\/pc\/photo\/directors.png"}],"shares":[{"name":"雷军","type":"自然人股东","img":"\/static\/pc\/photo\/shares.png","amount":"143,934万(元)"},{"name":"黎万强","type":"自然人股东","img":"\/static\/pc\/photo\/shares.png","amount":"18,724万(元)"},{"name":"洪锋","type":"自然人股东","img":"\/static\/pc\/photo\/shares.png","amount":"18,623万(元)"},{"name":"刘德","type":"自然人股东","img":"\/static\/pc\/photo\/shares.png","amount":"3,718万(元)"}],"districtCode":"1004:110108"}}

本博客仅用于学习研究,切勿用于商业用途

尊重原创,转载请注明,谢谢!

百度企业信用js加密研究相关推荐

  1. 爬虫网络请求之JS解密一(百度企业信用)

    爬虫网络请求之JS解密一(百度企业信用) 前言 反爬策略中最重要的一块领域就是在前端利用JS对数据请求参数进行加密或者数据隐藏(如大众点评的图像位移技术,即使使用代理也是无济于事,必须对JS进行驱动才 ...

  2. 用Python爬虫获取百度企业信用中企业基本信息!太厉害了!

    一.背景 希望根据企业名称查询其经纬度,所在的省份.城市等信息.直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确.百度 ...

  3. 企名片-企业数据js加密破解

    打开网站 企名片 分析网站 直接请求发现并不是静态页面,那就是js动态加载的了 发现一串很长的加密字符串,因为其他的请求也没有数据,所有这个应该就是我们需要的东西了 解密 搜索encrypt_data ...

  4. JS逆向之国家企业信用信息公示系统Cookie传递

    目标地址 http://www.gsxt.gov.cn/corp-query-entprise-info-xxgg-100000.html 分析 POST http://www.gsxt.gov.cn ...

  5. 用python爬虫来登录深信服ac行为控制器,涉及到js加密部分,更新url分类库(针对企业微信更新)

    企业环境中会有限制员工访问外网的情况,但是限制外网的同时也会把一些常用的软件也限制掉,比如(企业微信)所以需要把企业微信用到的域名,还有url排除掉,但是企业微信的域名,还有IP是不固定的,需要经常登 ...

  6. python爬虫之基于JS加密破解--有道翻译/百度翻译

    有道翻译破解案例(post) 目标 破解有道翻译接口,抓取翻译结果 # 结果展示 请输入要翻译的词语: elephant 翻译结果: 大象 ************************** 请输入 ...

  7. 国家企业信用信息公示系统爬虫

    本文仅供学习交流使用,请勿用于商业用途或不正当行为 如果侵犯到贵公司的隐私或权益,请联系我立即删除 国家企业信用信息公示系统及30多个省份的子系统均采用了加速乐的反扒,仔细研究可发现其主要的5个coo ...

  8. 【爬虫】关于企业信用信息公示系统-加速乐最新反爬虫机制

    ( ̄▽ ̄)~*又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构. 升级后网站的层次结构并没有太多变化,表面上是国家企业信用信 ...

  9. 办公文档加密,企业文档加密,强制性透明加密技术,fasoft

    随着企事业单位的快速发展,文档以电子文档方式为企事业单位承载着越来越多重要的信息.而由于电子文档的容易散播性,导致企事业单位在外发给客户或合作伙伴的重要资料,都可能会在这交互的过程中被篡改.无序传播等 ...

最新文章

  1. 广义hough变换matlab,matlab – 广义Hough R表
  2. 一道比较实用的MySQL面试题:游戏数据充值查询
  3. 自己做站点(二) 20块钱搞定一个企业站:域名amp;空间申请
  4. BUUCTF(pwn)mrctf2020_easy_equation
  5. 【Python】可遍历的数据类型有哪些?
  6. LinkedList阅读
  7. NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、改变)
  8. JenneyBRO – 模块化wordpress博客主题
  9. 给自己看的squid服务器配置笔记
  10. 从零开始学习python编程-从零开始学Python程序设计 PDF 完整影印版
  11. RMAN 学习过程之四,备份演练进阶篇
  12. oracle ocp考题,Oracle OCP认证考试题库更新,052新考题整理(带答案)-72
  13. Python POST 修改某计步APP的数据
  14. iphone打出空心心形_空心心形符号(类似的心形符号)
  15. gensim训练wiki中文词向量
  16. 浏览器缓存知识+JS实现缓存
  17. 小米已成国产手机标杆,海外出货量碾压华为OV
  18. 儿童编程Scratch入门课程都学习什么内容?
  19. java+mysql基于ssm的游戏光盘租赁系统(java,web)
  20. Java实现多图片和文字编辑成一张图片

热门文章

  1. 尚硅谷Manen2022----①基础概念,基础使用
  2. 如何通过机器学习自动进行大面积土地分类
  3. Visual Studio 2022下载、安装与运行使用方法
  4. 办公软件excel表格_【办公软件】文字排版 表格制作 PPT培训
  5. “终于我从字节离职了...“一个年薪40W的测试工程师的自白..
  6. java得物公司面试怎么样,得物app
  7. thinkphp开发的小程序、公众号H5、浏览器端H5、前端vue框架开发
  8. CCM DC-DC变换器建模(2): boost,传递函数,右半平面零点(RHPZ)
  9. Windows系统上如何在局域网中创建共享文件夹及取消文件夹共享
  10. 修复 dji spark 的 micro sd/tf 存储卡里不能正常播放的视频文件