cxxjackie 发表于 2023-6-17 23:14:00

反复横跳的主要原因是while(true)死循环了,油猴本身就会在加载新页面时重新执行脚本,不需要写循环去反复触发。还有不要试图在js中实现一个同步的sleep函数,跟其他语言不太一样,js是单线程的,这种sleep会造成页面假死,规范的做法是使用setTimeout:https://developer.mozilla.org/zh-CN/docs/Web/API/setTimeout

wjy0 发表于 2023-6-18 01:33:47

李恒道 发表于 2023-6-17 21:07
https://bbs.tampermonkey.net.cn/thread-4700-1-1.html
话说这个哥哥有兴趣可以接一下

论坛那么多个至今就1个成的,有点失去兴趣{:4_108:}

李恒道 发表于 2023-6-18 02:05:40

wjy0 发表于 2023-6-18 01:33
论坛那么多个至今就1个成的,有点失去兴趣

价格太低还是什么问题
我有点好奇

wjy0 发表于 2023-6-18 02:21:49

李恒道 发表于 2023-6-18 02:05
价格太低还是什么问题
我有点好奇

是钱的问题,网课脚本我没问题,可以捷径的捷径,不可以捷径的就自动化!

李恒道 发表于 2023-6-18 02:37:46

wjy0 发表于 2023-6-18 02:21
是钱的问题,网课脚本我没问题,可以捷径的捷径,不可以捷径的就自动化! ...
害...
哥哥目前碰到的不算离谱
之前我跟我朋友碰到一起
要我们先写代码
他赚到钱了再给我们
没赚到就算了

xiaooooooo 发表于 2023-6-20 00:11:37

李恒道 发表于 2023-6-17 18:11
代码发到
https://scriptcat.org/
然后在提问的时候贴地址


脚本猫我没有在用 我其实提问的时候会附上完整代码的 这样子假如别人直接全部复制新建一个油猴脚本的话就能直接看到我的效果了

xiaooooooo 发表于 2023-6-20 00:33:57

wjy0 发表于 2023-6-17 20:30
$('').children(':last').click()

不是click不行,可以

(function() {
'use strict';

elmGetter.selector($);
elmGetter.each('div.page-inner_2jZi2 a.n', company_name => {
console.log(company_name);
console.log('page is fully loaded');
console.log('xx');

    url = 'https://www.baidu.com' + $(company_name).attr('href');
    sleep(3);
    //window.location.href=$('').children(':last').attr('href');
    $('').children(':last').click()
    console.log('点击完了');
    console.log(url);

});
// Your code here...
})();

你的意思是这样吗?我试了还是不行 不过上面被我注释掉的那一行可以
就是window.location.href=$('').children(':last').attr('href');

xiaooooooo 发表于 2023-6-20 00:53:19

yang10560 发表于 2023-6-17 21:24


感谢 这个方法好 跑起来似乎比我用window.location.href来切换页面要快

xiaooooooo 发表于 2023-6-20 01:05:08

cxxjackie 发表于 2023-6-17 23:14
反复横跳的主要原因是while(true)死循环了,油猴本身就会在加载新页面时重新执行脚本,不需要写循环去反复 ...

谢大佬指点 我能在这里追问一个ElementGetter这个库的使用方法问题不?其实还是定位父级元素的一个问题

代码如下:
// ==UserScript==
// @name         同花顺市值数据
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @author       You
// @match      http://www.iwencai.com/stockpick/search*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=iwencai.com
// @require      http://cdn.bootcss.com/jquery/1.11.2/jquery.js
// @require      https://scriptcat.org/lib/513/2.0.0/ElementGetter.js
// @grant      GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';



    elmGetter.selector($);
    elmGetter.each('div.static_con_outer div.static_con table.static_table tbody tr', company_name => {
      console.log(company_name);
      console.log('page is fully loaded');
      console.log('xx');
      var dataList = [];
      for (var i=0; i<company_name.length; i++){
            var xuhao = $(company_name).find('td').eq(0).find('div').text();
            var daima = $(company_name).find('td').eq(2).find('div').text();
            var mingcheng = $(company_name).find('td').eq(3).find('div a').text();
            dataList.push({
                'xuhao': xuhao,
                'daima': daima,
                'mingcheng': mingcheng
            })


      }
      console.log(dataList);

      
    });

   
    elmGetter.each('div.scroll_viewport_con div.scroll_tbody_con table.scroll_table tbody tr', company_name_2 => {
      console.log(company_name_2);
      console.log('page is fully loaded');
      console.log('xx');
      var dataList_2 = [];
      for (var i=0; i<company_name_2.length; i++){
            var xianjia = $(company_name_2).find('td').eq(0).find('div').text();
            var zhangdiefu = $(company_name_2).find('td').eq(1).find('div').text();
            var zongshizhi = $(company_name_2).find('td').eq(2).find('div a').text();
            var liutongshizhi = $(company_name_2).find('td').eq(3).find('div a').text();
            var suoshuhangye = $(company_name_2).find('td').eq(4).find('div span a').text();
            dataList_2.push({
                'xianjia': xianjia,
                'zhangdiefu': zhangdiefu,
                'zongshizhi': zongshizhi,
                'liutongshizhi': liutongshizhi,
                'suoshuhangye': suoshuhangye
            })


      }
      console.log(dataList_2);

      
    });

    // Your code here...
})();

我想要获取元素的目标网址是:
http://www.iwencai.com/stockpick/search?rsh=3&typed=0&preParams=&ts=1&f=1&qs=result_original&selfsectsn=&querytype=stock&searchfilter=&tid=stockpick&w=%E6%80%BB%E5%B8%82%E5%80%BC&queryarea=

这个网站的奇特之处在于它把一个表格拆成了两个部分,单独获取其中一部分(左或者右)我可以的(这也是目前我的代码思路,但这样会形成两个独立的对象dataList和dataList_2),但我想要把它们合在同一个对象当中还有点办不到,虽然我知道它们共同的父级是这个元素<div class="atomic_table_con clearfix">...</div>

我想请教一下,如何把这两个对象合并?或者说如何抓住这个共同的父级?

xiaooooooo 发表于 2023-6-20 01:07:34

李恒道 发表于 2023-6-18 02:37
害...
哥哥目前碰到的不算离谱
之前我跟我朋友碰到一起


这个过分了……他怎么好意思提出来的
页: 1 [2] 3 4
查看完整版本: 求问大家我想实现网页自动翻页的功能该如何操作?