有没有办法从网站执行智能搜索?

弗雷德里克·努塔雷利

我在 python 中工作。我获得了一个名为 AdInsight 的网站的免费试用权限。这是它的结构示例:this现在的重点是该网站不是免费访问,但我必须通过我的机构申请免费试用,这样当我尝试使用 Bs4 或类似方法抓取它时,它看起来似乎对我没有要求进入网页(自从我尝试“正常”输入时,我设法做到了。也许一个问题是我正在 chrome 中打开网页并在 Safari 中处理本地环境。但是,有点 html 代码似乎与我有关的是以下内容:

</script>
  <script class="optanon-category-2" type="text/plain">
   dataLayer = [{
    'user': {
    'visitor_id': getVisitorIdFromLocalStorage()
    },
    'session': {
    'authentication':{
    'authenticationID': '1',
    'method': 'anonymous'
    }
    },
    'page': {
    'pageInfo': {},
    'category': {
    'pageType': ''
    },
    'attributes': {
    'template': '',
    }
    },
    'privacy': {},
    'version': '1.0.0',
    }];
    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-N8RLKKZ');
    
    function getVisitorIdFromLocalStorage() {
    return localStorage.getItem("visitor_id");
    }
  </script>
  <noscript>
   <h1 class="noScriptMsg">
    Either you have JavaScript disabled or your browser does not support Javascript . To work properly, this page requires JavaScript to be enabled.
    <br/>
    <a href="https://www.enable-javascript.com/" target="_blank">
     How to enable JavaScript in your browser?
    </a>
   </h1>
  </noscript>
 </head>
 <body>
  <input id="userEmailId" name="userEmailId" type="hidden" value=""/>
  <input id="userBpIds" name="userBpIds" type="hidden" value="1"/>
  <input id="userIsLoggedIn" name="userIsLoggedIn" type="hidden" value="false"/>
  <input id="userIsLoginTypeInstitutional" name="userIsLoginTypeInstitutional" type="hidden" value="false"/>
  <input id="userIsAnonymous" name="userIsAnonymous" type="hidden" value="true"/>
  <input id="userIsAnonymousUser" name="userIsAnonymousUser" type="hidden" value="true"/>

有没有一种方法可以让我简单地递归访问网站的搜索引擎并获取我需要的一条信息”(如果您没有权限,则隐藏该信息)

谢谢,

费德里科

普罗斯特

IIUC 您的抓取不起作用,因为您需要在该网站上登录。

Web 中的身份验证是通过 cookie(通过CookieHTTP 请求中的标头发送)完成的,因此在您的每个 HTTP 请求中,您应该包含Cookie要进行身份验证的标头。

因此,我看到有 2 个常见选项:

  1. 在浏览器中手动在网站上进行身份验证,转到 DevTools 并Cookie从 Networking 选项卡复制标题。然后为您用于抓取的 HTTP 请求库设置此标头。
  2. Selenium在到网站注册,然后刮使用本网站Selenium

另一种选择是检查该网站是否有公共 API 文档。如果他们这样做了,那么您应该在那里找到所有需要的信息,很可能会有一些您可以生成的身份验证令牌用作 HTTP 请求授权中的标头。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法获得QColor的智能名称?

有没有办法从 Google 自定义搜索 API 获取网站的完整标题?

有没有办法对 forfiles 执行否定搜索掩码?

有没有办法让Firefox自动登录网站?

有没有办法搜索github Wiki页面?

有没有办法设置默认搜索条件

有没有办法在python的lambda中执行“ if”

有没有办法自动执行SQL合并?

有没有办法检查谁执行查询?

有没有办法自动强制插件执行

有没有办法执行此循环?

有没有办法阻止 Javascript 执行?

有没有办法对输入数据执行操作?

有没有办法在Wireshark中可靠地搜索命令行执行?

有没有办法从网站的检查菜单中获取有关元素的信息?

有没有办法创建私有渠道的SharePoint网站?

有没有办法知道 WorkManager 作业是否因为约束而没有执行?

有没有办法使用 BeautifulSoup/requests 抓取搜索框,然后搜索和刷新?

有没有办法(在 c# 中)遍历网站 HTML 上的文章元素?

有没有办法从网站上的影子根中提取信息?

有没有办法禁用网站上巨大的广告牌/画廊?

当Linux中的IP地址或网站在线时,有没有办法得到通知?

有没有办法检测 LastPass 扩展是否在网站上运行(在 React 中)

有没有办法在网站中私下嵌入 HTML5 文件?

有没有办法对网站上的每个页面进行截图?

有没有办法使用 ASP.NET MVC 创建静态网站?

有没有办法替代Chrome的“请求桌面网站”选项?

有没有办法在HTML /网站中包含Markdown?

有没有办法让mp3持续在整个网站上播放?