某房地产瑞数6代补环境coookie
网址某房地产1.网页分析具体过程就不在描述了说一些关键点如下是补环境js代码在html中script里的js代码是一直变的要将其固定下来进行调试外链一直不变。function get_enviroment(proxy_array) { for(var i0; iproxy_array.length; i){ handler {\n get: function(target, property, receiver) {\n console.log(方法:, get , 对象:, proxy_array[i] , 属性:, property, 属性类型:, typeof property, // 属性值:, target[property], 属性值类型:, typeof target[property]);\n // if( typeof target[property] undefined){debugger} return target[property];\n },\n set: function(target, property, value, receiver) {\n console.log(方法:, set , 对象:, proxy_array[i] , 属性:, property, 属性类型:, typeof property, // 属性值:, target[property], 属性值类型:, typeof target[property]);\n return Reflect.set(...arguments);\n }\n } eval(try{\n proxy_array[i] ;\n proxy_array[i] new Proxy( proxy_array[i] , handler )}catch (e) {\n proxy_array[i] {};\n proxy_array[i] new Proxy( proxy_array[i] , handler )}) } } proxy_array [window, document, location, navigator, history,screen,target,] window global window.top window div { getElementsByTagName: function (res) { console.log(div中的getElementsByTagName接受的值:, res) if (res i) { return {length: 0} } } } script { 0: { getAttribute: function (res) { console.log(script中的getAttribute接受的值:, res) if (res r) { return m } }, parentElement: { removeChild: function (res) { console.log(script中的removeChild接受的值:, res) } } }, 1: { getAttribute: function (res) { console.log(script中的getAttribute接受的值:, res) if (res r) { return m } }, parentElement: { removeChild: function (res) { console.log(script中的removeChild接受的值:, res) } } }, } document { createElement : function(res){ console.log(document获取的createElement:::::::,res) if (res div){ return div } }, getElementById : function(res){ console.log(document中的getElementById接受值:, res) }, getElementsByTagName : function(res){ console.log(document中的getElementsByTagName接受值:, res) if (res base) { return {length: 0} } if (res script){ return script } }, documentElement : function(res){ console.log(document的documentElement获得的参数是::::,res) }, addEventListener: function (res) { console.log(document中的addEventListener:, res) } } setInterval function () { } setTimeout function () {} window.addEventListener function (res) { console.log(window中的addEventListener, res) } location { ancestorOrigins: {}, href: https://www.fangdi.com.cn/, origin: https://www.fangdi.com.cn, protocol: https:, host: www.fangdi.com.cn, hostname: www.fangdi.com.cn, port: , pathname: /, search: , hash: } window.self function(res){ console.log(window中的self:, res) } get_enviroment(proxy_array); code_data require(./外链_js) function get_cookie(){ return document.cookie }2.在py文件中调用js代码时会报错问题如下主要是js代码里面编码格式问题Traceback (most recent call last): File C:\Users\Mike\Desktop\js\安全产品\瑞数\网上房地产\02房地产.py, line 82, in module second_get() File C:\Users\Mike\Desktop\js\安全产品\瑞数\网上房地产\02房地产.py, line 48, in second_get content js.call(get_cookie) ^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_abstract_runtime_context.py, line 37, in call return self._call(name, *args) ^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_external_runtime.py, line 92, in _call return self._eval({identifier}.apply(this, {args}).format(identifieridentifier, argsargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_external_runtime.py, line 78, in _eval return self.exec_(code) ^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_abstract_runtime_context.py, line 18, in exec_ return self._exec_(source) ^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_external_runtime.py, line 88, in _exec_ return self._extract_result(output) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\Desktop\js\.venv\Lib\site-packages\execjs\_external_runtime.py, line 168, in _extract_result ret json.loads(str(output_last_line).encode(utf-8).decode(utf-8, ignore)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\AppData\Local\Programs\Python\Python312\Lib\json\__init__.py, line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py, line 337, in decode obj, end self.raw_decode(s, idx_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\Mike\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py, line 355, in raw_decode raise JSONDecodeError(Expecting value, s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)导入以下方法使其强制使用 UTF-8 编码进行全部统一问题自然解决了import subprocess from functools import partial subprocess. Popen partial(subprocess.Popen, encodingutf-8)