张巨侠

张巨侠 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑

每天进步一点点

个人动态

张巨侠 提出了问题 · 8月30日

flask写的接口发送POST请求成功后没有返回数据?

微信截图_20200830155314.png微信截图_20200830155332.png

明明执行到了return,却没有返回任何数据。
直接发送get请求,却能返回数据是什么原因?

image.png

关注 1 回答 0

张巨侠 提出了问题 · 8月28日

js淘宝生意参谋用localStorage存储的数据是通过什么加密的?

image.png
淘宝生意参谋打开搜索分析,页面初始化时就会存储这个页面的数据,但是获取的是加密过的数据,这个是通过什么加密的?

关注 1 回答 0

张巨侠 赞了回答 · 8月10日

解决window.open打开带中文的url出现乱码?

1688的转码是GBK,encodeURI是用Unicode,这样转换出来就会乱码,你重写一个GBK编码的中文转换就可以了
`https://s.1688.com/selloffer/offer_search.htm?keywords=%D6%D0%CE%C4&sortType=1
`
中文通过encodeURI转的是 %E4%B8%AD%E6%96%87在1688就会乱码,用GBK编码转成%D6%D0%CE%C4即可

关注 2 回答 1

张巨侠 提出了问题 · 8月10日

解决window.open打开带中文的url出现乱码?

var href = "https://s.1688.com/selloffer/offer_search.htm?keywords=小白&sortType=va_rmdarkgmv30rt"
var href2 = encodeURI(href)  //编码了一次
window.open(href2)

我使用encodeURI编码了一次,打开搜索结果还是有问题。
image.png

关注 2 回答 1

张巨侠 赞了回答 · 6月28日

js window.open 如何获取打开页面的html?

iframe 似乎可以实现你这个想法。

window.open() 我倒是没了解到有什么办法。

关注 2 回答 2

张巨侠 赞了回答 · 6月28日

js window.open 如何获取打开页面的html?

打开的地址和你当前的地址是同源的吗?

同源才可以取值;否则跨域则不可以,这是浏览器出于安全考虑作出的限制。

关注 2 回答 2

张巨侠 提出了问题 · 6月28日

js window.open 如何获取打开页面的html?

    myWindow = false
    function openWin(url){
      myWindow && myWindow.close()
      myWindow=window.open(url, 'scrollbars=yes,resizable=1,modal=false,alwaysRaised=yes', specs);
      myWindow.focus();
      setTimeout(() => {
        console.log(myWindow.document)   //获取新页面html元素失败
      }, 3000)
    }

我想获取window.open打开新页面的某个元素的数据,通过myWindow.document没有获取到?是什么原因呢?

关注 2 回答 2

张巨侠 提出了问题 · 5月30日

解决pyhon import引入自定义文件为什么会报错?

image

我在pyppeteer_spider.py文件中引入相同路径的python文件为什么会报错呢?

关注 2 回答 1

张巨侠 关注了用户 · 5月29日

fzhyzamt @fzhyzamt

关注 4

张巨侠 赞了回答 · 5月19日

selenium模拟登录淘宝这招是行不通的吗?

试了一下是可以正常登录的,没有要求滑块等任何验证。
环境:火狐Developer 66.0b14 (64 位),电信ip

部分注入脚本:

function callInPageContent(func) {
    // run in html script
    // 此实现为FF特性, 仅在FF可用
    // 其他浏览器可以插入script来实现
    window.eval("(" + func.toSource() + ")();");
}

(() => {
    // run in content script
    callInPageContent(() => {
        Object.defineProperty(window.navigator, 'webdriver', {
            get: () => undefined
        });
        Object.defineProperty(window.navigator, 'platform', {
            get: () => 'Win64'
        });
        Object.defineProperty(window.navigator, 'hardwareConcurrency', {
            get: () => 4
        });
        Object.defineProperty(window.navigator, 'oscpu', {
            get: () => 'Win64'
        });


        const rawGetContext = window.HTMLCanvasElement.prototype.getContext;
        Object.defineProperty(window.HTMLCanvasElement.prototype, 'getContext', {
            get: () => function (s) {
                if (s === 'experimental-webgl') {
                    return {
                        VENDOR: 7936,
                        RENDERER: 7937,
                        getExtension: function () {
                            return null;
                        },
                        getParameter: function (s) {
                            if (s === 7936 || s === 7937) {
                                return 'Mozilla';
                            }
                            return null;
                        },
                        getSupportedExtensions: function () {
                            return [
                                "ANGLE_instanced_arrays",
                                "EXT_blend_minmax",
                                "EXT_color_buffer_half_float",
                                "EXT_texture_compression_rgtc",
                                "EXT_frag_depth",
                                "EXT_sRGB",
                                "EXT_shader_texture_lod",
                                "EXT_texture_filter_anisotropic",
                                "OES_element_index_uint",
                                "OES_standard_derivatives",
                                "OES_texture_float",
                                "OES_texture_float_linear",
                                "OES_texture_half_float",
                                "OES_texture_half_float_linear",
                                "OES_vertex_array_object",
                                // "WEBGL_color_buffer_float",
                                // "WEBGL_compressed_texture_s3tc",
                                // "WEBGL_compressed_texture_s3tc_srgb",
                                // "WEBGL_debug_renderer_info",
                                // "WEBGL_debug_shaders",
                                // "WEBGL_depth_texture",
                                // "WEBGL_draw_buffers",
                                // "WEBGL_lose_context",
                            ];
                        }
                    };
                }
                return rawGetContext.call(this, s);
            }
        });
        const overwrite = function (name) {
            const OLD = window.HTMLCanvasElement.prototype[name];
            Object.defineProperty(window.HTMLCanvasElement.prototype, name, {
                "value": function () {
                    const shift = {
                        'r': Math.floor(Math.random() * 10) - 5,
                        'g': Math.floor(Math.random() * 10) - 5,
                        'b': Math.floor(Math.random() * 10) - 5,
                        'a': Math.floor(Math.random() * 10) - 5
                    };
                    const width = this.width, height = this.height, context = this.getContext("2d");
                    const imageData = context.getImageData(0, 0, width, height);
                    for (let i = 0; i < height; i++) {
                        for (let j = 0; j < width; j++) {
                            const n = ((i * (width * 4)) + (j * 4));
                            imageData.data[n] = imageData.data[n] + shift.r;
                            imageData.data[n + 1] = imageData.data[n + 1] + shift.g;
                            imageData.data[n + 2] = imageData.data[n + 2] + shift.b;
                            imageData.data[n + 3] = imageData.data[n + 3] + shift.a;
                        }
                    }
                    context.putImageData(imageData, 0, 0);
                    return OLD.apply(this, arguments);
                }
            });
        };
        overwrite('toBlob');
        overwrite('toDataURL');


        // noinspection JSUnresolvedVariable
        const originalQuery = window.navigator.permissions.query;
        // noinspection JSUnresolvedVariable
        window.navigator.permissions.query = (parameters) => (
            parameters.name === 'notifications' ?
                Promise.resolve({state: Notification.permission}) :
                originalQuery(parameters)
        );


        const getParameter = window.WebGLRenderingContext.prototype.getParameter;
        window.WebGLRenderingContext.prototype.getParameter = function (parameter) {
            // UNMASKED_VENDOR_WEBGL
            if (parameter === 37445) {
                return 'Intel Open Source Technology Center';
            }
            // UNMASKED_RENDERER_WEBGL
            if (parameter === 37446) {
                return 'Mesa DRI Intel(R) Ivybridge Mobile ';
            }

            return getParameter(parameter);
        };
    });

    // noinspection JSUnresolvedVariable
    window.document.addEventListener('mousemove', evt => window.wrappedJSObject._adb_plugin_mm_evt = evt);
})();

manifest.json:

{
  "manifest_version": 2,
  "name": "fake context",
  "version": "1.0.0",
  "applications": {
    "gecko": {
      "id": "Fake-Context@example.com"
    }
  },
  "browser_action": {
    "default_title": "fake context"
  },
  "content_scripts": [
    {
      "matches": [
        "*://*/*"
      ],
      "js": [
        "content.js"
      ],
      "all_frames": true,
      "match_about_blank": true,
      "run_at": "document_start"
    }
  ]
}

关注 3 回答 1

认证与成就

  • 获得 12 次点赞
  • 获得 87 枚徽章 获得 3 枚金徽章, 获得 19 枚银徽章, 获得 65 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-04-29
个人主页被 663 人浏览