javascript - 运行 Flask Web 服务器是否会阻止 Node.JS 中的 Web 抓取?

标签 javascript node.js python-3.x web-scraping

我有兴趣尝试网络抓取项目。目标站点使用 Javascript 动态加载和更新内容。大多数有关网络抓取此类网站的在线讨论表明,node.js、casper.js、phantom.js 和 Nightmare.js 都是在尝试此类项目时使用的相当流行的工具。 Node.js 似乎是最常用的。

如果我正在运行 Flask 服务器并希望显示 Node.js 的结果,例如在我的网站上以表格格式抓取,这可能吗?我会遇到兼容性问题吗?或者为了保持一致性,我应该尝试像 BS4 一样使用基于 python 的爬取方法来坚持下去?我问这个问题是因为 node.js 被描述为服务器,所以我假设如果我尝试同时使用它和 Flask 会发生冲突。

最佳答案

如果您想编写一个执行 javascript 的网络抓取工具,node.js(带有 Phantom.js 之类的东西)是一个不错的选择。另一个流行的选择是 Selenium 。您需要模拟用户操作来激活事件处理程序。我们将这个 Action 称为“抓取”。 BS4 不合适,因为它无法执行 javascript。

将数据保存到磁盘后,以 HTML 表格形式显示结果(我们将此操作称为“报告”)将需要另一种解决方案。 Flask 是一个合适的选择。

由于抓取和报告是不同的问题,因此如果您想同时使用这两项服务,就不会发生冲突。当使用 Selenium 或 Node.js 作为抓取工具时,您并没有真正运行 Web 服务器。因此,将其视为可能发生冲突的两个 Web 服务器是不正确的。

关于javascript - 运行 Flask Web 服务器是否会阻止 Node.JS 中的 Web 抓取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43485072/

相关文章:

javascript - 无法使用 AngularJS 将对象传递到 Web 后端

javascript - 访问 JSON 字符串时出现类型错误

python - xlsxwriter 单击单元格或应用功能

python - ImportError 在 MinGW-W64 Python 3.6 中导入 ssl

javascript - 如何动态添加数据做Google Timeline图表?

javascript - 在 Javascript 中按值分配

webdriver.io 中的 javascript -> getAttribute

javascript - 您如何检测 Chrome 中是否阻止了指向另一个域的弹出窗口?

node.js - 如何在 node.js 中使用 node-soap 设置 header

python-3.x - 从 python3.7 运行时连接到 Google App Engine 共享内存缓存