如何使此PHP脚本更快/异步运行?

如何使此PHP脚本更快/异步运行?,php,regex,curl,php-curl,pastebin,Php,Regex,Curl,Php Curl,Pastebin,我有一个pastebin scraper脚本,用于查找泄漏的电子邮件和密码,从而创建一个类似的网站 下面是我的脚本所做的: -从中删除粘贴库链接 -使用此随机代理API获取随机代理(因为如果您发出过多请求,则Pastebin会禁止您的IP): -对Pastebin链接执行CURL请求,然后执行preg_match_all以email:password格式查找所有电子邮件地址和密码 实际的脚本似乎工作正常,但优化不够,一段时间后出现524超时错误,我怀疑这是因为所有这些CURL请求。以下是我的代码

我有一个pastebin scraper脚本,用于查找泄漏的电子邮件和密码,从而创建一个类似的网站

下面是我的脚本所做的:
-从中删除粘贴库链接
-使用此随机代理API获取随机代理(因为如果您发出过多请求,则Pastebin会禁止您的IP):
-对Pastebin链接执行CURL请求,然后执行
preg_match_all
email:password
格式查找所有电子邮件地址和密码 实际的脚本似乎工作正常,但优化不够,一段时间后出现524超时错误,我怀疑这是因为所有这些CURL请求。

以下是我的代码:
api.php

    function comboScrape_CURL($url) {
    // Get random proxy
    $proxies->json = file_get_contents("https://api.getproxylist.com/proxy");
    $proxies->decoded = json_decode($proxies->json);
    $proxy = $proxies->decoded->ip.':'.$proxies->decoded->port;
    list($ip,$port) = explode(':', $proxy);

    // Crawl with proxy
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $curl_scraped_page = curl_exec($ch);
    curl_close($ch);
    comboScrape('email:pass',$curl_scraped_page);
}
require('api.php');
$expression = "/(?:https\:\/\/pastebin\.com\/\w+)/";

$extension = ['','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20'];
foreach($extension as $pge_number) {
    $dumps = file_get_contents("https://psbdmp.ws/dumps/".$pge_number);
    preg_match_all($expression,$dumps,$urls);
    $codes = str_replace('https://pastebin.com/','',$urls[0]);
    foreach ($codes as $code) {
        comboScrape_CURL("https://pastebin.com/raw/".$code);
    }
}
index.php

    function comboScrape_CURL($url) {
    // Get random proxy
    $proxies->json = file_get_contents("https://api.getproxylist.com/proxy");
    $proxies->decoded = json_decode($proxies->json);
    $proxy = $proxies->decoded->ip.':'.$proxies->decoded->port;
    list($ip,$port) = explode(':', $proxy);

    // Crawl with proxy
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $curl_scraped_page = curl_exec($ch);
    curl_close($ch);
    comboScrape('email:pass',$curl_scraped_page);
}
require('api.php');
$expression = "/(?:https\:\/\/pastebin\.com\/\w+)/";

$extension = ['','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20'];
foreach($extension as $pge_number) {
    $dumps = file_get_contents("https://psbdmp.ws/dumps/".$pge_number);
    preg_match_all($expression,$dumps,$urls);
    $codes = str_replace('https://pastebin.com/','',$urls[0]);
    foreach ($codes as $code) {
        comboScrape_CURL("https://pastebin.com/raw/".$code);
    }
}

524超时错误
-err,您似乎在web服务器(apache?nginx?lighthttpd?IIS?)后面运行php。不要这样做,而是从php cli运行代码,php cli可以无限期运行,并且永远不会超时


因为如果你提出太多请求,Pastebin会禁止你的IP使用
-购买一个Pastebin.com pro帐户(),费用约为50美元(或圣诞节和黑色星期五前后为20美元),是一个终身帐户,一次性付款,让你可以访问scraping api(),使用scraping api,你可以每秒获取1次粘贴,或者每天86400个贴片,而不会被禁止使用ip


由于pastebin.com的速率限制,没有必要通过多个连接异步执行此操作(这是可能的,但不值得这么做。但是,如果您确实需要这样做,您必须使用)

,因为pastebin禁止您的IP如果您发出过多请求
PS,您可以购买pastebin.com Pro帐户,你可以访问一个不受限制的刮片。我已经尝试过用代理打开pastebin,它可以工作,但只要我尝试使用代理API,它就停止了。如果你购买了pastebin.com pro帐户,你就可以访问刮片API(),它每天可以获取86400个刮片,而不会被禁止使用ip。谢谢,@hanshenrik,最终购买了专业版:)感谢您的帮助,最终购买了专业版:)