Что нового

[Сеть, интернет] получение ссылок и сохранение в файл

damien2008

Осваивающий
Сообщения
178
Репутация
34
добрый день помогите пожалуйста сделать следующее.
есть html страница, с которой надо получить ссылки на файлы, а потом сохранить их в файл.

вот пример страницы:
Код:
i686/gnome-games-extra-data-3.0.0-1-any.pkg.tar.xz'>gnome-games-extra-data-3.0.0-1-any.pkg.tar.xz</a></div><div class='row shaded' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-games-extra-data-3.2.0-1-any.pkg.tar.xz'>gnome-games-extra-data-3.2.0-1-any.pkg.tar.xz</a></div><div class='row shaded' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-games-extra-data-3.2.0-1-any.pkg.tar.xz.sig'>gnome-games-extra-data-3.2.0-1-any.pkg.tar.xz.sig</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-icon-theme-2.28.0-1-any.pkg.tar.gz'>gnome-icon-theme-2.28.0-1-any.pkg.tar.gz</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-icon-theme-2.30.0-1-any.pkg.tar.xz'>gnome-icon-theme-2.30.0-1-any.pkg.tar.xz</a></div>class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-icon-theme-3.0.0-2-any.pkg.tar.xz'>gnome-icon-theme-3.0.0-2-any.pkg.tar.xz</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-icon-theme-3.0.0-2-any.pkg.tar.xz.sig'>gnome-icon-theme-3.0.0-2-any.pkg.tar.xz.sig</a></div><div class='row

тоесть весь текст идет в одну строку.
как мне получить ссылки для XZ, GZ, SIG

что-то вроде:
http://arm.konnichi.com/extra/os/i686/gnome-alsamixer-0.9.6-4-i686.pkg.tar.xz
http://arm.konnichi.com/extra/os/i686/gnome-applets-2.28.0-2-i686.pkg.tar.gz
http://arm.konnichi.com/extra/os/i686/gnome-applets-3.1.2-1-i686.pkg.tar.xz.sig
http://arm.konnichi.com/extra/os/i686/gnome-applets-2.32.0-3-i686.pkg.tar.xz

вот мой код:
Код:
#include <File.au3>
#include <Array.au3>

Global $f1, $f2, $list
$olist = @ScriptDir & "\list.html"
$list = @ScriptDir & "\list.txt"

$f1 = StringRegExp(FileRead(FileOpen($olist, 0)), "(http.*.gz)", 3)
$f2 = FileOpen($list, 2)
_FileWriteFromArray($f2, $f1 & @CRLF)
FileClose($f1)
FileClose($f2)


только он выдает что-то неправильное:
вот пример
Код:
http://arm.konnichi.com/extra/os/i686/gnome-alsamixer-0.9.6-3-i686.pkg.tar.gz'>gnome-alsamixer-0.9.6-3-i686.pkg.tar.gz</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-alsamixer-0.9.6-4-i686.pkg.tar.xz'>gnome-alsamixer-0.9.6-4-i686.pkg.tar.xz</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-alsamixer-0.9.6-4-i686.pkg.tar.xz.sig'>gnome-alsamixer-0.9.6-4-i686.pkg.tar.xz.sig</a></div><div class='row' ><a href='http://arm.konnichi.com/extra/os/i686/gnome-applets-2.28.0-2-i686.pkg.tar.gz'>gnome-applets-2.28.0-2-i686.pkg.tar.gz</a></div><div class='row' ><a
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$file=FileRead(@ScriptDir&'\1234')
$str=StringRegExp($file,"<a href='http://(.*?)'>",3)
$res=''
For $i=0 To UBound($str)-1
	$res&='http://'&$str[$i]&@CRLF
Next
FileWrite(@ScriptDir&'\4321',$res)
 
Автор
damien2008

damien2008

Осваивающий
Сообщения
178
Репутация
34
sngr большое спасибо, работает! :-[

а можно уточнить, начало файла получается такое:

Код:
http://wiki.archlinux.org/index.php/Downgrade_packages' title='
http://arm.konnichi.com/extra/os/i686/gnome-alsamixer-0.9.6-3-i686.pkg.tar.gz

то-есть что-то не так с первой строкой. почему ее тоже зацепило?
хотя такой даже нет... какая-то неведомая сила ее просто сформировала...
это можно как-то убрать?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$str=StringRegExp($file,"<a href='http://(\S+)'>",3)

Покажи весь файл.
 
Автор
damien2008

damien2008

Осваивающий
Сообщения
178
Репутация
34
sngr
спасибо за дополнение.
проверил. регекспа правильно срабатывает.
:ok:

решено.
 
Верх