【问题标题】:How do I prevent Selenium from downloading certain "Sources" from a web-page?如何防止 Selenium 从网页下载某些“源”?
【发布时间】:2020-07-30 15:41:04
【问题描述】:

我正在使用 Selenium 进行一些网络抓取活动,我真的觉得有必要通过阻止特定文件类型限制数据消耗或文件名从被下载。我希望通过 regex 过滤器来阻止它们,例如:

  • *.MP4
  • *.css
  • *ads.google.com*

到目前为止,我还没有找到任何解决方案,如果可能的话,我期待一个 JavaScript 解决方案...

【问题讨论】:

  • 你会接受 Java 的答案吗?
  • @DebanjanB 是的,绝对 - 只要解决方案附带它!

标签: javascript selenium google-chrome


【解决方案1】:

我发现可以通过调解 Chrome 扩展 中间件来实现该解决方案。

特别是在background-scripts 中,您可以使用onBeforeRequests 来处理和过滤每个请求

chrome.webRequest.onBeforeRequest.addListener(
        function(info) {
            return {cancel: info.url.toLowerCase().includes('.css') || info.url.toLowerCase().includes('.gif') || info.url.toLowerCase().includes('.png') || info.url.toLowerCase().includes('.jpg') || info.url.toLowerCase().includes('.jpeg') || info.url.toLowerCase().includes('.webm') || info.url.toLowerCase().includes('.webp') ||info.url.toLowerCase().includes('.mp4') || info.url.toLowerCase().includes('allHeaderNonBlocking.js') || info.url.toLowerCase().includes('allHeader.js?') || info.url.toLowerCase().includes('/analytics.js') || info.url.toLowerCase().includes('googletagmanager') || info.url.toLowerCase().includes('calleo-livechat') || info.url.toLowerCase().includes('.svg') };
        },
        {
            urls: ["<all_urls>"]
        },
        ["blocking"]
    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2019-03-18
    • 2017-09-27
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多