Действительно ли возможно загрузить весь .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.
#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");
}
}
Попробуйте этой командой:
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"
и это загружает изображения. Так, это, кажется, работает, хотя я не знаю, являются ли эти изображения теми, Вы хотите загрузить.