国家企业信用信息公示系统爬虫——流程分析

本文仅供学习交流使用,请勿用于商业用途或不正当行为
如果侵犯到贵公司的隐私或权益,请联系我立即删除

20201212更新,附上第二步js改写的代码
# 2.第二次访问http://www.gsxt.gov.cn/index.html更新cookie:__jsl_clearance
resp = s.get(url)
js_pre = """
var document = {};
var location = {pathname:"pathname", search:"search"};
function getCookie(func, time){
    func();
};
"""
js_str = js_pre + re.findall('<script>(.+?)</script>', resp.text)[0]
# 删除检测浏览器相关代码, 也可以不删除, 补相关环境即可
replace_str = re.findall(r'function go.+?var .{7,10}=.{7,10};(.+?)var .{7,10}=new Date', resp.text)[0]
js_str = js_str.replace(replace_str, '')
# node里面执行setTimeout失败, 替换该函数为自定义的函数
js_str = js_str.replace('setTimeout', 'getCookie')

ctx = execjs.compile(js_str)
__jsl_clearance = ctx.eval('document.cookie')
__jsl_clearance = re.findall('__jsl_clearance=(.+?);Max', __jsl_clearance)[0]
s.cookies.set('__jsl_clearance', __jsl_clearance)  # 更新cookie到session中
print('更新cookie成功:', __jsl_clearance)
1、第一次访问http://www.gsxt.gov.cn/index.html, 获取cookie:__jsluid_h(Set-Cookie), __jsl_clearance(响应生成)
2、 第二次访问http://www.gsxt.gov.cn/index.html, 更新cookie:__jsl_clearance, 本步骤可以先用ast对混淆的代码进行还原, 然后调试改写
3、第三次访问http://www.gsxt.gov.cn/index.html, 设置了JSESSIONID, SECTOKEN, tlb_cookie相关cookie
4、访问http://www.gsxt.gov.cn/SearchItemCaptcha, 获取gt, challenge
5、发送gt, challenge到2captcha打码平台, 获取geetest_validate
6、访问http://www.gsxt.gov.cn/corp-query-custom-geetest-image.gif?v=xx, 获取location_info及^后面的值
7、访问http://www.gsxt.gov.cn/corp-query-geetest-validate-input.html?token=xx, 获取token值
8、用以上获取的参数及cookie构造列表页请求
9、解析详情页url,构造详情页请求

每步运行效果

1.设置cookie成功: 1599319589.733|-1|tig5%2FrcdXMP5mCDrEIz6sGfxgDo%3D

2.更新cookie成功: 1599319589.99|0|pZbcb9vKT%2FaYREOJJrcpgCyXgMU%3D

3.Set-Cookie成功(JSESSIONID, SECTOKEN, tlb_cookie)

4.获取gt, challenge成功: {"success":1,"challenge":"de9f8bb4499c6581b74b4e7b5f7863cd","gt":"62756445cd524543f5a16418cd920ffd"}

5.发送2captcha成功, 获取task_id: OK|64672632650

6.按照2captcha官方要求, 需要等待15-20s, 等待中...

7.OK|{"geetest_challenge":"de9f8bb4499c6581b74b4e7b5f7863cd","geetest_validate":"f5807eb58e7e3a34689ff51dedb1d73b","geetest_seccode":"f5807eb58e7e3a34689ff51dedb1d73b|jordan"}

8.获取token成功: 34898487

9.http://www.gsxt.gov.cn/%7B4532906A2D1331B8DE2457690FCFB3F40EE63056688040B6142A6D977F52D92350B8788E2C12C44DD5921B835526F0CE0F75B0DA7BFBCD8F0FCAA8EA6AE4AD83ADBFADBFADCFF9B5F9EB7012107012113980B60B4EADCFAFEAC2595B393A387A999A232065C32F537E3394F2324E8DFEB9DF0C220C0F1D8A5CD54D9B730F69BA948694869486-1599319590398%7D

10.{'credit_code': '91110000802100433B', 'company_name': '北京百度网讯科技有限公司', 'registration_number': '110108002734659', 'legal_man': '梁志祥', 'type': '有限责任公司(自然人投资或控股)', 'establish_date': '2001年06月05日', 'registered_capital': '1342128.000000万人民币', 'approval_date': '2019年12月19日', 'business_time_from': '2001年06月05日', 'business_time_to': '2021年06月04日', 'registration_office': '北京市工商行政管理局海淀分局', 'registration_status': '开业', 'address': '北京市海淀区上地十街10号百度大厦2层', 'business_scope': '技术转让、技术咨询、技术服务、技术培训、技术推广;设计、开发、销售计算机软件;经济信息咨询;利用www.baidu.com、www.hao123.com(www.hao222.net、www.hao222.com)网站发布广告;设计、制作、代理、发布广告;货物进出口、技术进出口、代理进出口;医疗软件技术开发;委托生产电子产品、玩具、照相器材;销售家用电器、机械设备、五金交电(不含电动自行车)、电子产品、文化用品、照相器材、计算机、软件及辅助设备、化妆品、卫生用品、体育用品、纺织品、服装、鞋帽、日用品、家具、首饰、避孕器具、工艺品、钟表、眼镜、玩具、汽车及摩托车配件、仪器仪表、塑料制品、花、草及观赏植物、建筑材料、通讯设备、汽车电子产品、器件和元件、自行开发后的产品;预防保健咨询;公园门票、文艺演出、体育赛事、展览会票务代理;翻译服务;通讯设备和电子产品的技术开发;计算机系统服务;车联网技术开发;汽车电子产品设计、研发、制造(北京市中心城区除外);演出经纪;人才中介服;经营电信业务;利用信息网络经营音乐娱乐产品、演出剧(节)目、动漫产品、游戏产品(含网络游戏虚拟货币发行)、表演、网络游戏技法展示或解说(网络文化经营许可证有效期至2020年04月17日);因特网信息服务业务(除出版、教育、医疗保健以外的内容);图书、电子出版物、音像制品批发、零售、网上销售。(企业依法自主选择经营项目,开展经营活动;演出经纪、人才中介服务、利用信息网络经营音乐娱乐产品、演出剧(节)目、动漫产品、游戏产品(含网络游戏虚拟货币发行)、表演、网络游戏技法展示或解说、经营电信业务以及依法须经批准的项目,经相关部门批准后依批准的内容开展经营活动;不得从事本市产业政策禁止和限制类项目的经营活动。)'}
总结:本网站难点为每次搜索都接入了极验验证码(随机出现滑动或点选), 如果去硬刚破解js耗时耗力,这里我们直接使用了第三方的打码平台https://2captcha.com/,以上,仅供参考!
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值