爬虫(五)-openlaw[通俗易懂]

爬虫(五)-openlaw[通俗易懂]爬虫-openlaw


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

地址:http://openlaw.cn/login.jsp

需要登陆,Form data

爬虫(五)-openlaw[通俗易懂]

 爬虫(五)-openlaw[通俗易懂]

爬虫(五)-openlaw[通俗易懂]

找到_csrf和password,_csrf,在登陆页面

爬虫(五)-openlaw[通俗易懂]

找加密password的js代码,ctrl+F搜索password,重新填入input

爬虫(五)-openlaw[通俗易懂]

找到加密函数KeyEncrypt

爬虫(五)-openlaw[通俗易懂]

找到JSEncrypt,CryptoJs

 爬虫(五)-openlaw[通俗易懂]

爬虫(五)-openlaw[通俗易懂]

执行

爬虫(五)-openlaw[通俗易懂]

用execjs执行js或者用js2py

node.js或Jscript报navigator is not define,可以用PhantomJS

#运行时环境设置
import
execjs import execjs.runtime_names os.environ["EXECJS_RUNTIME"] = "PhantomJS" PhantomJS = execjs.get(execjs.runtime_names.PhantomJS) print(execjs.get().name)

爬虫(五)-openlaw[通俗易懂]

结果如图

pytohn执行

#获取csfr
headers={ "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Accept-Encoding":"gzip,deflate", "Accept-Language":"zh-CN,zh;q=0.9", "Cache-Control":"max-age=0", "Connection":"keep-alive", "Content-Type":"application/x-www-form-urlencoded", "Host":"openlaw.cn", "Upgrade-Insecure-Requests":"1", "User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36", } r=session.get("http://openlaw.cn/login.jsp?",headers=headers1) tree=etree.HTML(r.text) csrf=tree.xpath('//input[@name="_csrf"]/@value')[0]

#post form data post_url
="http://openlaw.cn/login" with open(r"C:\Users\37576\Desktop\123.js",encoding="utf-8")as f: js=f.read() ctx = execjs.compile(js) pwd=ctx.call("keyEncrypt","XXXXXXXX")#密码 data={ "_csrf":csrf, "username":"#########",#账户 "password":pwd, "_spring_security_remember_me":"true", } res=session.post(post_url,data=data,headers=headers)

 tree=etree.HTML(res.text)
 lala=tree.xpath(‘//div[@class=”bbp-user-section”]//text()’)

登陆成功

爬虫(五)-openlaw[通俗易懂]

 

页面

url="http://openlaw.cn/guidance/16444eba67afe97881fa6521d333ef10"
headers1={
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding":"gzip,deflate",
"Accept-Language":"zh-CN,zh;q=0.9",
"Connection":"keep-alive",
"Host":"openlaw.cn",
"Upgrade-Insecure-Requests":"1",
"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36",
}
a=session.get(url,headers=headers1)

是混淆的js

爬虫(五)-openlaw[通俗易懂]

抓包

爬虫(五)-openlaw[通俗易懂]

有二条请求

爬虫(五)-openlaw[通俗易懂]

第一条加cookie,第二条正常,需要知道怎么加的cookie

jjencodeDemo:http://utf-8.jp/public/jjencode.html
],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[
jsfunk:http://www.jsfuck.com/
+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]
゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ [
‘
_
‘]; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚:
‘
_
‘ ,゚ω゚ノ : ((゚ω゚ノ==3) +
‘
_
‘) [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+
‘
_
‘)[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +
‘
_
‘)[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +
‘
_
‘) [c^_^o];(゚Д゚) [
‘
c
‘] = ((゚Д゚)+
‘
_
‘) [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];

代码执行一下或者找工具解密

爬虫(五)-openlaw[通俗易懂]

(function anonymous() {
    if (window.wp1) {
        document.cookie = 'OPEN_E4C0C08491=' + wp3;
        document.cookie = 'OPEN_ID=B32pJOwfO/AJZJ3ZGmnunQNTaUie84jnyHoNCq/onZQ='
    }
}
)

加cookie的部分

爬虫(五)-openlaw[通俗易懂]

爬虫(五)-openlaw[通俗易懂]

js:

var wp1 = 'xKIOt5jUZQcS8wurcX4lghwlET9K0IWBUsS3ZqmSamCBTAPg7Fl5sVr443dyK42p';
var wp2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var wp3 = "548545fe3ced4f3494934e537e304705";
var wp4 = "464acf618bf62df3e7e37e80c2c1a04d";
var wp5 = "0aa9566c4aa30883e34d0e1a530bf508";
var wp6 = "a8f49232d343e4b94ff7958088fa6734";
var wp7 = "82f778b45a9fce8589105c852174947b";
var wp8 = "3221d819c9b96d2631d0b5084c736f69";
if (window.wp1) {
        document.cookie = 'OPEN_E4C0C08491=' + wp3;
        document.cookie = 'OPEN_ID=B32pJOwfO/AJZJ3ZGmnunQNTaUie84jnyHoNCq/onZQ='
    }

var getGlobal = function() {
        if (typeof self !== '') {
            return self
        }
        ;if (typeof window !== '') {
            return window
        }
        ;if (typeof global !== '') {
            return global
        }
        ;throw new Error('unable to locate global object')
    };
function _process(s) {
        var result = s.substring(5, 7).concat('s').concat(s.substring(14, 15)).concat('v').concat(s.substring(9, 13)).concat('g').concat(s.substring(5)).concat('l').concat(s.substring(11, 19));
        return result.substr(0, 32);
    }
    ;var _switch = false;
    if ((getGlobal() === window)) {
        _switch = true
    } else {
        _switch = false
    };
document.cookie
= 'SIGNIN_ID=3e2291010f36c9244c633aba4cdcdd42'; document.cookie = 'SIGNIN_UC=9e65d8fc646e49fb7a0f9f8237915bfb'; document.cookie = 'UNDEFINED=432e9111ecf89746f3046ca970814f41'; if (_switch) { document.cookie = 'OPEN_589D5869B5=' + _process(wp3); setTimeout("location.reload();", 100); }

。。。很多参数不知道哪里来的搞不定了,用selenium

#配置chorme
from
selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--headless') driver = webdriver.Chrome(chrome_options=chrome_options,executable_path = 'D:\python\chromedriver.exe') from time import sleep
#登陆
driver.get("http://openlaw.cn/login.jsp?logout") driver.find_element_by_id("username").send_keys("XXXXXXXXX") driver.find_element_by_id("password").send_keys("XXXXXXXXX") sleep(2) driver.find_element_by_id("submit").click()
#页面数据
driver.get("http://openlaw.cn/guidance/167ce490ba94c3ed26baab5689fdd620") sleep(2) title=driver.find_element_by_xpath('//h1[@class="entry-title"]').text guid=driver.find_element_by_xpath('//div[@class="annotator-wrapper"]/p').text content=driver.find_element_by_xpath('//div[@class="annotator-wrapper"]/p[2]').text page_detail={"title":title,"content":guid+"\n"+content.replace("\u3000"," ")}

结果

爬虫(五)-openlaw[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167992.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用uWSGI和nginx进行服务器部署

    利用uWSGI和nginx进行服务器部署

    2021年11月21日
  • maven 菜鸟教程_runoob菜鸟教程app

    maven 菜鸟教程_runoob菜鸟教程app1.什么是maven?    maven是一个跨平台的项目管理工具。  作为Apache组织中的一个颇为成功的开源项目,Maven只要服务于Java平台的项目构建、依赖管理和项目信息管理。  Maven不涉及编码,但是涉及编码的方式(导入jar方式)2.项目的构建方式  编译————>运行单元——————>生成文档——————>打包和部署  …

    2022年9月8日
  • 基于灰色关联度分析法_灰色关联度分析法的优缺点

    基于灰色关联度分析法_灰色关联度分析法的优缺点本文介绍了利用灰色关联度分析方法分析了数据之间的关联度。

    2022年10月24日
  • C语言中 malloc函数用法

    C语言中 malloc函数用法一、malloc()和free()的基本概念以及基本用法:使用malloc的情况 首先说明一下,由malloc动态申请的内存空间是堆式的内存空间。而静态的内存的空间是栈式的。有关堆栈的知识请参考其他相关资料。1. 大容量内存需求 a) 网上说当我们需要的内存空间超过0.5兆的时候最好使用动态内存,也就是利用malloc来申请内存空间。可以这么认为,如果内存过大,就会不

    2022年6月9日
  • 基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计

    基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计前言本人也是正在学习单片机知识的萌新一枚,在这里记录下自己完成这个小设计的过程跟大家分享一下,也请大家指出我哪里还有不足可以改进的地方。秉着和大家一起学习进步发布了这篇文章STM32F103ZET6单片机我使用的单片机是正点原子版的STM32F1精英版,型号是ZET6。32系列的单片机功能比较完整,基本所有的小设计都可以使用32完成,而且现在市面上使用32系列的人也是不在少数,所以推荐大家使用这款单片机去完成各种实验和设计。…

    2022年9月18日
  • Java安全之Commons Collections6分析

    Java安全之CommonsCollections6分析0x00前言其实在分析的几条链中都大致相同,都是基于前面一些链的变形,在本文的CC6链中,就和前面的有点小小的区别。在CC6链中也和CC

    2021年12月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号