【问题标题】:How to break beautifulsoup process on AWS EC2 before it gets killed?如何在 AWS EC2 上的 beautifulsoup 进程被杀死之前破坏它?
【发布时间】:2022-01-05 01:33:56
【问题描述】:

我想在一些 .org 网站上运行一个涉及使用 beautifulsoup 24/7 进行网页抓取的 python 进程。它在大多数网站上运行平稳,但是,对于一些罕见的例外,网络中存在峰值,如下图所示。 python 进程(不是实例)被杀死。

在抓取时,我避免使用任何 .pdf 或 .jpg...,这样 CPU 使用率就不会超过 15%(到目前为止,没有问题)

理想情况下,我需要一个脚本来让进程在被杀死时重新启动,但有人告诉我这是不可能的(除非你们中的一些人建议我否则,也许我可以配置一个 AWS 服务来让进程在被杀死时重新启动被杀)。

有没有办法限制 beautifoulsoup 网络的能力,并在特定链接达到网络峰值之前停止对其进行抓取?

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 beautifulsoup


    【解决方案1】:

    理想情况下,我需要一个脚本,让进程在被杀死时重新启动,但有人告诉我这是不可能的

    不确定这是不是真的。

    1. 证明您可以做到这一点的最简单示例是创建一个 bash 脚本,该脚本检查您的 python 脚本/进程是否正在运行,如果没有,则启动它。可以使用 CRON 安排该脚本,以便每隔 X 分钟/秒检查一次。

    简单示例:

    #!/bin/bash
    ps -eaf | grep <your-process>
    if [ $? -eq 1 ]
    then
    <start your script again>
    else
    echo "running"
    fi
    
    1. 更复杂的解决方案是将您的进程/脚本设置为systemd 服务,以便它在崩溃时自动重新启动您的进程。

    参见示例:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2010-12-08
      相关资源
      最近更新 更多