【问题标题】:Using selenium to fetch data使用 selenium 获取数据
【发布时间】:2021-08-18 15:00:49
【问题描述】:

我有一个使用 Angular、Node.js/Express.js 和 MySQL 开发的 Web 应用程序。我的应用程序有一些页面在从另一个网络应用程序example: https://www.example.com 获取数据后显示数据。因为,这个另一个应用程序没有任何 API 可以从中获取数据,所以我在 Python Selenium 的帮助下使用网络 scrapingscraping 从网站。我在 Node.js 中调用我的 Python 程序。

我想问的是,向目标站点发送请求的机器人之间的连接是否安全? selenium 自动浏览器是否向站点发送加密连接?或者,我是否必须连接到代理以保护我的连接。我不想暴露我的服务器的 IP。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 仅供参考,它是 scrape(和 scrapescraperscraped)不是报废。报废意味着像垃圾一样扔掉。
  • @barny,对不起我的无知。我以为一切都是英式英语中的双p。

标签: selenium bots


【解决方案1】:

不,这不是安全连接,因为 Selenium 在内部为每个 Selenium 命令创建了一个HTTP request

  1. 对于每个 Selenium 命令,都会创建一个 HTTP 请求并将其发送到浏览器驱动程序

  2. 浏览器驱动程序使用 HTTP 服务器来获取 HTTP 请求

  3. HTTP 服务器确定实现 Selenium 命令所需的步骤

  4. 实现步骤在浏览器上执行

  5. 执行状态回传给HTTP服务器

  6. HTTP 服务器将状态发送回自动化脚本

Why HTTP is not secure

【讨论】:

  • 那么使用http代理可行吗?我的主要目的是对目标站点隐藏我的 IP。
  • 不知道有多大的可行性,但是引入proxy肯定会起到中间件的作用。
【解决方案2】:

selenium 通信是在客户端库和驱动程序 API 之间进行的。 selenium 不会向目标站点发送任何内容,而是向浏览器发送任何内容 如果您从本地系统运行 selenium 并在 localhost 中启动 selenium/驱动程序,则不会出现“中间人攻击”的问题,因为通信在 localhost 网络内,没有人可以窃听您。

除了您的脚本和对 selenium API 的调用之间的通信之外,没有其他通信发生。与正常用户场景一样,所有其他通信都是从目标网站进行的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多