@CommonNewbie

Как лучше оптимизировать crawler для сайта?

Есть задача поиска изображений на сайте ibb.co, которые содержат определённую модель телефона в exif(эта информация выводится непосредственно на странице)
iyZqosY9RAyM4lUZ85Ouvg.png
При загрузке изображения ссылка формируется в виде ibb.co + 7 символов(0-9, a-z, A-Z)
Написал свой скрипт
<?php
$string = "HUAWEI";
$permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$log = "log.txt";
$found = "found.txt";
$shit = "smth.txt";
 
function generate_string($input, $strength = 16) {
    $input_length = strlen($input);
    $random_string = '';
    for($i = 0; $i < $strength; $i++) {
        $random_character = $input[mt_rand(0, $input_length - 1)];
        $random_string .= $random_character;
    } 
    return $random_string;
} 
for ($i = 1; $i <= 5000000; $i++) {
    $generate = generate_string($permitted_chars, 7);
    $url = "https://ibb.co/".$generate;
    $headers = get_headers($url);
    if ($headers[0] == "HTTP/1.1 200 OK"){
        file_put_contents($shit, $url, FILE_APPEND);
        $content = file_get_contents($url);    
        $pos = strpos($content, $string);
        if ($pos !== false) {
            $format_url = $url . "\n";
            file_put_contents($found, $format_url, FILE_APPEND);   
>

Но у него минусы, ссылка генерируется случайно, т.е. не весь сайт будет проверен и работает он медленно.
После загрузки на 20 серверов в среднем 1 сервер делает что-то около 1 млн запросов в сутки, что очень печально.
Порекомендуйте, как можно сделать это более эффективно.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
wget'ом собрать ссылки
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы