我如何 运行 portia spider 的端口?
How can i run a portia spider by its port?
我正在尝试 运行 一个在其 docker 版本中带有 portia 的蜘蛛,但我不想使用像 docker exec ... portiacrawl ...
这样的终端命令来执行蜘蛛。有什么方法可以 运行 已经创建的蜘蛛,通过在其本地主机端口发出请求并将其保存在特定文件夹中?
类似于:
https://localhost:9001/execute/spider_name/folder_path
我自己的用法示例:
首先我做的是 运行 容器并离开它 运行ning,因为我不能因为其他原因停止它:
docker run -i -t -d --rm -v <PROJECTS_FOLDER>:/app/data/projects:rw -p 9001:9001 scrapinghub/portia
接下来我执行 portiacrawl:
docker exec <CONTAINER_ID> portiacrawl <PROJECT_NAME_PATH> <SPIDER_NAME> -o /some/path/in/my/pc/<SPIDER_NAME>.json
现在,我想要的是将 docker exec 步骤替换为对 运行ning 本地主机服务器的 som http 请求。
非常感谢您的宝贵时间
是的,您可以通过进行端口映射。启动 docker 容器时,除非您告诉 docker 这样做,否则您不会 public 发布或在内部公开任何端口。
例如:
如果你想在内部公开一个端口(在 docker 网络内部,你需要在 docker 文件中添加 EXPOSE
)
如果你想发布一个可以通过本地主机或 public ip 访问的 publicly 端口,你可以使用 -p
选项并传递端口,因此在您的情况下它将是这样的:
docker run -p 9001:9001 imagename
上面的命令会告诉 docker 你想要从 9001(使用本地主机或任何其他接口)进行端口映射到 9001(在容器内,你可以根据你的实际设置更改端口).
如果你只想将它暴露给本地主机,你可以将命令更改为如下内容:
docker run -p 127.0.0.1:9001:9001 imagename
更多信息请查看the following docs
根据更新后的问题,另一种最安全的方法是在 portiacrawl
中实现 API,可以通过 HTTP 调用它来完成所需的任务,而不是使用 docker exec
我正在尝试 运行 一个在其 docker 版本中带有 portia 的蜘蛛,但我不想使用像 docker exec ... portiacrawl ...
这样的终端命令来执行蜘蛛。有什么方法可以 运行 已经创建的蜘蛛,通过在其本地主机端口发出请求并将其保存在特定文件夹中?
类似于: https://localhost:9001/execute/spider_name/folder_path
我自己的用法示例:
首先我做的是 运行 容器并离开它 运行ning,因为我不能因为其他原因停止它:
docker run -i -t -d --rm -v <PROJECTS_FOLDER>:/app/data/projects:rw -p 9001:9001 scrapinghub/portia
接下来我执行 portiacrawl:
docker exec <CONTAINER_ID> portiacrawl <PROJECT_NAME_PATH> <SPIDER_NAME> -o /some/path/in/my/pc/<SPIDER_NAME>.json
现在,我想要的是将 docker exec 步骤替换为对 运行ning 本地主机服务器的 som http 请求。
非常感谢您的宝贵时间
是的,您可以通过进行端口映射。启动 docker 容器时,除非您告诉 docker 这样做,否则您不会 public 发布或在内部公开任何端口。
例如:
如果你想在内部公开一个端口(在 docker 网络内部,你需要在 docker 文件中添加
EXPOSE
)如果你想发布一个可以通过本地主机或 public ip 访问的 publicly 端口,你可以使用
-p
选项并传递端口,因此在您的情况下它将是这样的:
docker run -p 9001:9001 imagename
上面的命令会告诉 docker 你想要从 9001(使用本地主机或任何其他接口)进行端口映射到 9001(在容器内,你可以根据你的实际设置更改端口).
如果你只想将它暴露给本地主机,你可以将命令更改为如下内容:
docker run -p 127.0.0.1:9001:9001 imagename
更多信息请查看the following docs
根据更新后的问题,另一种最安全的方法是在 portiacrawl
中实现 API,可以通过 HTTP 调用它来完成所需的任务,而不是使用 docker exec