【问题标题】:JS script that automatically captures links自动捕获链接的JS脚本
【发布时间】:2023-03-14 22:55:01
【问题描述】:

我问this question 我在哪里尝试制作一个 JS 脚本,该脚本自动捕获边缘下载页面中按钮中的链接并将它们保存到剪贴板,但弹出另一个问题,复制的字符串仅包含前 5 或 6 个链接(那里是页面中的数百个链接,具有“开启”滚动功能)

代码:

    function findButton() {
  var buttons = document.querySelectorAll('button');
             var arr = [];
 for (var i = 0; i < 100 ;i++) {
     var elem = buttons[i++];
var text = elem.textContent || elem.innerText;
     arr.push(text);
 }
      return arr
}

var x = findButton().toString();
setTimeout(function(){navigator.clipboard.writeText(x);},5000);
alert(x);

检查元素:

<button class="c01209" id="open_link774" role="link" aria-label="https://link.springer.com/content/pdf/10.1007%2F978-94-007-2464-8.pdf">https://link.springer.com/content/pdf/10.1007%2F978-94-007-2464-8.pdf</button>

【问题讨论】:

  • 链接是真正的锚点还是只是按钮元素内的文本?
  • @LarsFlieger,它们是按钮的内部文本(不是a 元素)。我将发布检查元素
  • 好的。为什么要将它们存储到剪贴板?
  • @LarsFlieger,我想将结果粘贴到包含我下载的所有链接的文本文档中,因为我想制作一个脚本,将这些链接与我打开的任何页面的链接进行比较,如果它匹配其中任何一个脚本都会发出警告。只要看看我的第一个问题,你就会明白这背后的时代。
  • 我添加了一个答案。您可以简单地从控制台复制所有链接。这就是你想要的吗?

标签: javascript jquery browser


【解决方案1】:

试试这个:

const urls = document.querySelectorAll('button')
const result = Array.from(urls).map(url => url.textContent)

console.log(result)
<button role="link" aria-label="https://example-1.com">https://example-1.com</button>
<button role="link" aria-label="https://example-2.com">https://example-2.com</button>
<button role="link" aria-label="https://example-3.com">https://example-3.com</button>
<button role="link" aria-label="https://example-4.com">https://example-4.com</button>
<button role="link" aria-label="https://example-5.com">https://example-5.com</button>
<button role="link" aria-label="https://example-6.com">https://example-6.com</button>

【讨论】:

  • 您的代码的工作方式也与我的相同(5 到 6 个链接的结果相同)。我注意到了一些事情,脚本在页面的查看部分捕获了前 5 到 6 个链接(下载页面在右侧有一个向下滚动条)。 +1 用于缩短代码。
  • @mohamed 你能分享你想要获取链接的页面吗?可能与视觉渲染有关(页面只渲染视口中的元素)
  • 它是edge的下载页面,没有链接,因为它只是edge://downloads/all(你可以在浏览器中打开它)。整个页面都被渲染了
猜你喜欢
  • 1970-01-01
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 2021-06-12
  • 2019-01-03
  • 1970-01-01
  • 2016-11-21
相关资源
最近更新 更多