Что нового

[Автоматизация] Скачивание и сохранение определенных файлов со страницы интернет

tubsids

Новичок
Сообщения
4
Репутация
0
Доброго времени суток!
Хотелось бы получить подсказку относительно загрузки файлов определенных типов с сайта.
Скрипт у меня читает тупо всю страницу и затем должен загрузить файлы типа .pdf и других файлов с определенным началом имени, например "new_*.*"
Буду рад подсказке. Благодарю заранее!

Код:
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <String.au3>
#include <IE.au3>
#include <Inet.au3>

Local $oIE = _IECreate("www")
;-------------------
Local $oLinks = _IELinkGetCollection($oIE)
Local $iNumLinks = @extended
Local $sTxt1 = $iNumLinks & " links found" & @CRLF & @CRLF
For $oLink In $oLinks
	$sTxt1 &= $oLink.href & @CRLF
Next
MsgBox($MB_SYSTEMMODAL, "Link Info", $sTxt1)
;-----------------------------
Local $result0=_StringBetween($oIE,'<a href="', '.pdf')
_ArrayDisplay($result0, "Result")

;Local $result1=StringRegExp($sTxt1,'"('&"(?:.*?).pdf"&')"',3)
MsgBox($MB_SYSTEMMODAL, "Results PDF","Link SA_:" & $aResult1 & @CRLF)
;--------------------
_IEQuit($oIE)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


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

tubsids

Новичок
Сообщения
4
Репутация
0
Спасибо за замечание! Будем исправляться!

Между прочим скрипт немного отредактировал. Но когда устанавливаю имя вручную - всё работает. А вот имя так как в скрипте ниде, не принимает. Предложения?

Код:
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <String.au3>
#include <IE.au3>
#include <Inet.au3>
#include <StringConstants.au3>
#include <InetConstants.au3>


Local $i = 0
Local $oHTMLLink = "http://www.ids.tu-bs.de/studien--und-diplomarbeiten.html"
Local $oIE = _IECreate($oHTMLLink)
;---------------------
Local $oLinks = _IELinkGetCollection($oIE)
Local $iNumLinks = @extended
Local $sTxt1 = $iNumLinks & " links found" & @CRLF & @CRLF
For $oLink In $oLinks
$sTxt1 &= $oLink.href & @CRLF
Local $sResult = $oLink.href & @CRLF
Local $iPosition = StringInStr($sResult, "SA_")
If $iPosition >1 Then
MsgBox($MB_SYSTEMMODAL, "", "The search string with SA_ @CRLF " & $oLink.href, 1)
Local $sLinkNameResult = $sResult
Local $aName = StringSplit($sLinkNameResult, "/")
;_ArrayDisplay($aName, "Result Name")
;MsgBox($MB_SYSTEMMODAL, "", "The name is: " & _ArrayToString($aName, @TAB, $aName[0], $aName[0]), 1)
Local $sLinkName = "" & _ArrayToString($aName, @TAB, $aName[0], $aName[0])
MsgBox($MB_SYSTEMMODAL, "", "The name is: " & @CRLF & $sLinkName, 1)
Example_Download($oLink.href & @CRLF, $sLinkName & @CRLF)
;If ($oLink.href) & @CRLF Then MsgBox($MB_SYSTEMMODAL, "Link Info PDF", $oLink.href & @CRLF)
EndIf
Next
MsgBox($MB_SYSTEMMODAL, "Link Info", $sTxt1, 1)


;--------------------
_IEQuit($oIE)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
tubsids [?]
затем должен загрузить файлы типа .pdf и других файлов с определенным началом имени, например "new_*.*"
Код:
#include <MsgBoxConstants.au3>
#include <Array.au3>

Local $sHost = "http://www.ids.tu-bs.de/"
Local $sPage = "studien--und-diplomarbeiten.html"
$sText = BinaryToString(InetRead($sHost & $sPage), 4)
$aLinks = StringRegExp($sText, '(?m)(?:<a href=\")(.*\.pdf)', 3)
;~ _ArrayDisplay($aLinks)
For $i = 0 To UBound($aLinks) -1
	If StringInStr($aLinks[$i], 'SA_') Then
		$sName = StringRegExpReplace($aLinks[$i], '.*/(.*\.pdf)', '$1')
		ConsoleWrite($sHost & $aLinks[$i] &@CR)
		$hDownload = InetGet($sHost & $aLinks[$i], $sName)
	EndIf
Next
InetClose($hDownload)
 
Автор
T

tubsids

Новичок
Сообщения
4
Репутация
0
Большое спасибо за ответ!
Не могли бы подсказать еще со строчкой
Код:
StringRegExpReplace($aLinks[$i], '.*/(.*\.pdf)', '$1')
И не могли бы показать парочку примеров замены с помощью данной функции для следующих выражений:
Удаление или нахождение всех символов слева после выражения
Удаление или нахождение всех символов справа после выражения
Удаления или нахождения элементов между выражениями

Мои попытки с функциями
StringBetween
StringInString
Были полностью неприменимы в данном цикле
 
Верх