javascript - 如何从快速路线中调用我的网络爬虫?
问题描述
我的 Nodejs 服务器的根目录中有一个网络爬虫,运行 express。这是一个使用 needle 对 html 发出 get 请求的文件,它返回一个数据数组。然后我有我的 index.js 和我的快速路线,一个简单的,比如"/api/scrape"
.
但是,当我转到该 url 时,服务器控制台仍会在刮板中打印出 console.log 以表明它正在完成。但是快递想在等待刮板完成之前继续前进。
在将响应发送回 React 之前,如何等待爬虫完成。
解决方案
你可以看看这个项目 - https://github.com/vodolaz095/email-parser-api。
它是简单的 Selenium 驱动的 api,它是从 nodejs 应用程序中调用的,暴露了某种 REST API。
代码很简单
这是 expressjs 路由器代码,它实际上调用刮板以响应 POST 请求
https://github.com/vodolaz095/email-parser-api/blob/master/index.js#L21-L53
这是刮板代码
https://github.com/vodolaz095/email-parser-api/blob/master/lib/parser.js
推荐阅读
- javascript - array.every() 不会影响数组的任何元素?
- r - 拆分列中的值并将其重新分配给新列
- python - 使用图遍历(AQL 和 Python)删除文档/边的最佳实践
- c++ - 如何编码用于模板参数的类型列表?
- javascript - request(...).then 在发出 POST 请求时不是函数错误
- highcharts - Y轴标签和系列颜色相同
- shell - 将存储在文件中的两个变量输入到程序的命令行
- html - 有没有办法像 w3school 的文本框示例那样创建一个带标签的复选框?
- android-studio - 缺少泛型类型“MaterialPageRoute”的类型参数
'(颤振) - javascript - BottomNavigation 在 React Native 中不显示 @expo/vector-icons