Загрузка связанных изображений сети

Действительно ли возможно загрузить весь .jpg и .png файлы, связанные в сети? Я хочу загрузить изображения с каждого сообщения каждого потока [этот форум] [1] содержащий ссылку. Например [это сообщение] [2] содержит ссылку на [этот файл] [3].

Я попробовал wget:

  wget -r -np http://www.mtgsalvation.com/forums/creativity/artwork/340782-official-digital-rendering-thread? 

и это скопировало все файлы HTML того потока. Хотя я не знаю, почему это спрыгивает ...thread?comment=336 кому: ...thread?comment=3232, когда это шло один за другим до комментария 336.

1
задан 5 December 2014 в 11:53

2 ответа

#include <stdio.h>
#include <stdlib.h> // for using system calls
#include <unistd.h> // for sleep

int main ()
{
    char  body[] = "forum-post-body-content", notes[] = "p-comment-notes", img[] = "img src=", link[200], cmd[200]={0}, file[10];
    int c, pos = 0, pos2 = 0, fin = 0, i, j, num = 0, found = 0;
    FILE *fp;

    for (i = 1; i <= 149; ++i)
    {
        sprintf(cmd,"wget -O page%d.txt 'http://www.mtgsalvation.com/forums/creativity/artwork/340782-official-digital-rendering-thread?page=%d'",i,i);
        system(cmd);
        sprintf(file, "page%d.txt", i);
        fp = fopen (file, "r");
        while ((c = fgetc(fp)) != EOF)
        {
            if (body[pos] == c)
            {
                if (pos == 22)
                {
                    pos = 0;
                    while (fin == 0)
                    {
                        c = fgetc (fp);
                        if (feof (fp))
                            break;
                        if (notes[pos] == c)
                        {
                            if (pos == 14)
                            {
                                fin = 1;
                                pos = -1;
                            }
                            ++pos;
                        }
                        else
                        {
                            if(pos > 0)
                                pos = 0;
                        }
                        if (img[pos2] == c)
                        {
                            if (pos2 == 7)
                            {
                                pos2 = 0;
                                while (found == 0)
                                {
                                    c = fgetc (fp); // get char from file
                                    link[pos2] = c;
                                    if (pos2 > 0)
                                    {
                                        if(link[pos2-1] == 'g' && link[pos2] == '\"')
                                        {
                                        found = 1;
                                        }
                                    }
                                    ++pos2;
                                }
                                --pos2;
                                found = 0;
                                char link2[pos2];
                                for (j = 1; j < pos2; ++j)
                                {
                                    link2[j - 1] = link[j];
                                }
                                link2[j - 1] = '\0';
                                sprintf(cmd, "wget -O /home/arturo/Dropbox/Digital_Renders/%d \'%s\'", ++num, link2);
                                system(cmd);
                                pos2 = -1;
                            }
                            ++pos2;
                        }
                        else
                        {
                            if(pos2 > 0)
                                pos2 = 0;
                        }
                    }
                fin = 0;
                }
                ++pos;
            }
            else
                pos = 0;
        }
        // closing file
        fclose (fp);
        if (remove (file))
            fprintf(stderr, "Can't remove file\n");
    }
}
1
ответ дан 3 December 2019 в 06:42

Попробуйте этой командой:

wget -P path/where/save/result -A jpg,png -r http://www.mtgsalvation.com/forums/creativity/artwork/

Согласно wget страница справочника :

    -A acclist --accept acclist
        Specify comma-separated lists of file name suffixes or patterns to
        accept or reject (@pxref{Types of Files} for more details).
    -P prefix
        Set directory prefix to prefix.  The directory prefix is the direc‐
        tory where all other files and subdirectories will be saved to,
        i.e. the top of the retrieval tree.  The default is . (the current
        directory).
    -r
    --recursive
        Turn on recursive retrieving.
<час>

Попытка это:

    mkdir wgetDir
    wget -P wgetDir http://www.mtgsalvation.com/forums/creativity/artwork/340782-official-digital-rendering-thread?page=145

Эта команда получит страницу HTML и поместит ее в wgetDir. Когда я попробовал эту команду, я нашел этот файл:

    340782-official-digital-rendering-thread?page=145

тогда, я попробовал эту команду:

    wget -P wgetDir -A png,jpg,jpeg,gif -nd --force-html -r -i "wgetDir/340782-official-digital-rendering-thread?page=145"

и это загружает изображения. Так, это, кажется, работает, хотя я не знаю, являются ли эти изображения теми, Вы хотите загрузить.

4
ответ дан 10 November 2019 в 08:22

Другие вопросы по тегам:

Похожие вопросы: