Что нового

Скачать определенную картинку со страницы сайта и закачать ее на свой сайт

bodystyle

Чайник
Сообщения
11
Репутация
0
Добрый день! Есть сайт с картинками. надо выбрать одну и закачать себе на сайт. Реально получается несколько действий:
1. Открытие сайта
2. Поиск url картинки
3. Скачивание картинки в определенную папку
4. Вставка url картинки (с моего компа) в форму моего сайта и клик
Код:
; открыл сайт донор
#include <IE.au3>
$IE =  _IECreate("http://www.ayda.ru/stories/show_v.php?v=12") 

;не знаю, как извлечь ссыль и вставить в следующий код???

$hImageBin = InetRead ('http://www.ayda.ru/stories/photos/independent-travel.jpg')
MsgBox(0,'',$hImageBin)
$OPEN=FileOpen('1.jpg',2+16)
FileWrite($OPEN,$hImageBin)
FileClose($OPEN)

; открываю свой сайт (уже авторизованный)

Sleep(3000)
_IENavigate ($IE, "http://localhost/test.ru/silvers.php?mod=addnews&action=addnews")

; и вставляю 1.jpg в форму закачки картинок (с этим пока тоже есть проблемы).
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
bodystyle [?]
Поиск url картинки
По каким критериям?

Так, например, будут скачаны все имеющиеся на странице jpg-картинки, ссылки на которые начинаются на http и в которых есть текст /photos/.
Код:
;~ HttpSetProxy(1)

Local $s_Url = 'http://www.ayda.ru/stories/show_v.php?v=12', $s_Html, $a_ImgLink, $i_Ub, $i_Count, $i_Err = 0, $s_Dir = @ScriptDir & '\ImgDL\'

$s_Html = InetRead($s_Url, 17)
If @error Then Exit 1
$s_Html = BinaryToString($s_Html)
$a_ImgLink = StringRegExp($s_Html, '<img src=.*?(http[^''">\h]+?/photos/[^''">\h]+?jpg)(?=[''">\h])', 3)
$s_Html = ''
$i_Ub = UBound($a_ImgLink)
If Not $i_Ub Then Exit 2
If FileExists($s_Dir) Then
	FileDelete($s_Dir & '*.*')
Else
	DirCreate($s_Dir)
EndIf
For $i = 0 To $i_Ub - 1
;~ 	$a_ImgLink[$i] = InetGet($a_ImgLink[$i], $s_Dir & StringRegExpReplace($a_ImgLink[$i], '^.*/', ''), 17, 1);оригинальное имя картинки
	$a_ImgLink[$i] = InetGet($a_ImgLink[$i], $s_Dir & $i + 1 & '.jpg', 17, 1);имя картинки по номеру, начиная с 1.jpg
Next
While $i_Ub > $i_Count
	For $i = 0 To $i_Ub - 1
		If $a_ImgLink[$i] Then
			If InetGetInfo($a_ImgLink[$i], 2) Then
				If InetGetInfo($a_ImgLink[$i], 4) Then $i_Err += 1
				InetClose($a_ImgLink[$i])
				$a_ImgLink[$i] = 0
				$i_Count += 1
				ConsoleWrite('Downloaded image number ' & $i + 1 & ', ' & $i_Count & ' (' & $i_Ub & '), errors: ' & $i_Err & @LF)
			EndIf
		EndIf
	Next
	Sleep(1000)
WEnd
А заливать картинки на свой сайт, ИМХО, лучше всего по FTP, если поддерживается.
 
Автор
B

bodystyle

Чайник
Сообщения
11
Репутация
0
Спасибо! Но вот с другими сайтами почему-то не получается. Скачивает токо одну фотку. Почему так?

Код:
;~ HttpSetProxy(1)

Local $s_Url = 'http://bondhd.livejournal.com/2056.html', $s_Html, $a_ImgLink, $i_Ub, $i_Count, $i_Err = 0, $s_Dir = @ScriptDir & '\ImgDL\'

$s_Html = InetRead($s_Url, 17)
If @error Then Exit 1
$s_Html = BinaryToString($s_Html)
$a_ImgLink = StringRegExp($s_Html, '<img src=.*?(http[^''">\h]+?/bondhd/[^''">\h]+?jpg)(?=[''">\h])', 3)
$s_Html = ''
$i_Ub = UBound($a_ImgLink)
If Not $i_Ub Then Exit 2
If FileExists($s_Dir) Then
    FileDelete($s_Dir & '*.*')
Else
    DirCreate($s_Dir)
EndIf
For $i = 0 To $i_Ub - 1
;~  $a_ImgLink[$i] = InetGet($a_ImgLink[$i], $s_Dir & StringRegExpReplace($a_ImgLink[$i], '^.*/', ''), 17, 1);оригинальное имя картинки
    $a_ImgLink[$i] = InetGet($a_ImgLink[$i], $s_Dir & $i + 1 & '.jpg', 17, 1);имя картинки по номеру, начиная с 1.jpg
Next
While $i_Ub > $i_Count
    For $i = 0 To $i_Ub - 1
        If $a_ImgLink[$i] Then
            If InetGetInfo($a_ImgLink[$i], 2) Then
                If InetGetInfo($a_ImgLink[$i], 4) Then $i_Err += 1
                InetClose($a_ImgLink[$i])
                $a_ImgLink[$i] = 0
                $i_Count += 1
                ConsoleWrite('Downloaded image number ' & $i + 1 & ', ' & $i_Count & ' (' & $i_Ub & '), errors: ' & $i_Err & @LF)
            EndIf
        EndIf
    Next
    Sleep(1000)
WEnd



Добавлено:
Сообщение автоматически объединено:

И еще может кто подскажет как из файла content.txt взять текст или (ссылку), чтобы забросить его в форму? Если можно, то подскажите как брать весь текст и как брать построчно?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
bodystyle,
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.






Добавлено:
Сообщение автоматически объединено:

bodystyle [?]
Но вот с другими сайтами почему-то не получается.
На каждый сайт нужен свой паттерн.
 
Автор
B

bodystyle

Чайник
Сообщения
11
Репутация
0
madmasles
Не могу с Вами согласиться. Вопрос был у меня изначально //4. Вставка url картинки (с моего компа) в форму моего сайта и клик //. Просто на этот вопрос ответа не было я его повторил. Вы предложили качать через FTP, Спасибо, но мне надо закачать через форму, вот и спросил. Если можете то подскажите, плз!
Виноват, что немного расширил вопрос. Я его перенесу в другой раздел. А по поводу паттерн. Я вставил код где он как раз переделан под другой сайт, но он скачивает только одну фотку почему-то, а не все.
 
Верх