上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: xiaooooooo - 

求问大家我想实现网页自动翻页的功能该如何操作?

[复制链接]
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

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

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-6-22 14:10
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    18

    主题

    133

    回帖

    142

    积分

    中级工程师

    积分
    142

    油中2周年

    发表于 2023-6-18 01:33:47 | 显示全部楼层
    李恒道 发表于 2023-6-17 21:07
    https://bbs.tampermonkey.net.cn/thread-4700-1-1.html
    话说这个哥哥有兴趣可以接一下

    论坛那么多个至今就1个成的,有点失去兴趣
    网课需求,wx:466756115(全日制大学勿扰,大学生应当好好学习)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5223

    回帖

    6095

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6095

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-6-18 02:05:40 | 显示全部楼层
    wjy0 发表于 2023-6-18 01:33
    论坛那么多个至今就1个成的,有点失去兴趣

    价格太低还是什么问题
    我有点好奇
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-6-22 14:10
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    18

    主题

    133

    回帖

    142

    积分

    中级工程师

    积分
    142

    油中2周年

    发表于 2023-6-18 02:21:49 | 显示全部楼层
    李恒道 发表于 2023-6-18 02:05
    价格太低还是什么问题
    我有点好奇

    是钱的问题,网课脚本我没问题,可以捷径的捷径,不可以捷径的就自动化!
    网课需求,wx:466756115(全日制大学勿扰,大学生应当好好学习)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5223

    回帖

    6095

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6095

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-6-18 02:37:46 | 显示全部楼层
    wjy0 发表于 2023-6-18 02:21
    是钱的问题,网课脚本我没问题,可以捷径的捷径,不可以捷径的就自动化! ...

    害...
    哥哥目前碰到的不算离谱
    之前我跟我朋友碰到一起
    要我们先写代码
    他赚到钱了再给我们
    没赚到就算了

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    119

    积分

    中级工程师

    积分
    119

    油中2周年油中3周年

    发表于 2023-6-20 00:11:37 | 显示全部楼层
    李恒道 发表于 2023-6-17 18:11
    代码发到
    https://scriptcat.org/
    然后在提问的时候贴地址

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

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    119

    积分

    中级工程师

    积分
    119

    油中2周年油中3周年

    发表于 2023-6-20 00:33:57 | 显示全部楼层
    wjy0 发表于 2023-6-17 20:30
    $('[class="page-inner_2jZi2"]').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=$('[class="page-inner_2jZi2"]').children(':last').attr('href');
        $('[class="page-inner_2jZi2"]').children(':last').click()
        console.log('点击完了');
        console.log(url);

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    119

    积分

    中级工程师

    积分
    119

    油中2周年油中3周年

    发表于 2023-6-20 00:53:19 | 显示全部楼层

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

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    119

    积分

    中级工程师

    积分
    119

    油中2周年油中3周年

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

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

    代码如下:
    // ==UserScript==
    // @name         同花顺市值数据
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try 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>

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

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    119

    积分

    中级工程师

    积分
    119

    油中2周年油中3周年

    发表于 2023-6-20 01:07:34 | 显示全部楼层
    李恒道 发表于 2023-6-18 02:37
    害...
    哥哥目前碰到的不算离谱
    之前我跟我朋友碰到一起

    这个过分了……他怎么好意思提出来的
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表