Login
Как вытащить ссылки из файла?
NEW 13.08.10 01:29
Как вытащить все ссылки из файла? Нужны только они и ничего более.... Весь остальной мусор должен отсеятся. Заранее спасибо.
Блог о современных пластиковых окнах.http://fenster-tueren.blogspot.com/Задай вопрос и получи ответ по теме.rus-de.blogspot.com
NEW 13.08.10 03:28
in Antwort PisAtel2006 13.08.10 01:29
В общем случае - никак.
В частном - если известен формат ссылок и формат файла - что-то можно сделать...
В частном - если известен формат ссылок и формат файла - что-то можно сделать...
NEW 13.08.10 19:57
in Antwort Murr_0003 13.08.10 03:28, Zuletzt geändert 13.08.10 19:58 (compman)
NEW 13.08.10 23:50
in Antwort compman 13.08.10 19:57, Zuletzt geändert 13.08.10 23:51 (PisAtel2006)
html файл, извлечь надо гиперссылкии те что сининьким обычно выделены.
И текст по возможности. Убрать надо все остальные тэги форматирования html файла.

Блог о современных пластиковых окнах.http://fenster-tueren.blogspot.com/Задай вопрос и получи ответ по теме.rus-de.blogspot.com
NEW 14.08.10 00:15
in Antwort PisAtel2006 13.08.10 23:50
html файл
------
Ну что же - полагаю - локальный файл.
гиперссылкии ... текст по возможности
------
Простой парсер - все что между <a> и </a>.
Если Я правильно понимаю, то простейший вариант - пустяковая програмка на Перле сделает работу.
Второй по сложности - XSLT и прописать его в начале файла.
------
Ну что же - полагаю - локальный файл.
гиперссылкии ... текст по возможности
------
Простой парсер - все что между <a> и </a>.
Если Я правильно понимаю, то простейший вариант - пустяковая програмка на Перле сделает работу.
Второй по сложности - XSLT и прописать его в начале файла.
NEW 14.08.10 00:31
in Antwort PisAtel2006 13.08.10 23:50, Zuletzt geändert 14.08.10 01:06 (voxel3d)
Perl:
a.html:
<a href="http://www.google.com">Google</a>
<a href="http://www.apple.com">Apple</a>
ext.pl:
#!/usr/bin/perl
use strict;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->get( $some_url );
my @links = $mech->links();
for my $link ( @links ) {
printf "%s, %s\n", $link->text, $link->url;
}
результат:
Google, http://www.google.com
Apple, http://www.apple.com
$some_url заменить на урл к файлу, если нужен файл, т.е. если виндовс и файл лежит в C:\a.html, то будет 'file:///C:/a.html'.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 14.08.10 00:57
in Antwort Murr_0003 14.08.10 00:15
NEW 14.08.10 01:29
in Antwort voxel3d 14.08.10 00:57
Так не на много сложнее. Для меня - даже проще на порядок - не надо изучать еще один язык...
NEW 14.08.10 01:36
in Antwort Murr_0003 14.08.10 01:29
NEW 14.08.10 02:44
in Antwort voxel3d 14.08.10 00:57, Zuletzt geändert 14.08.10 02:46 (femidav)
Можно прицепить к файлу пару строчек на javascript и jquery. А XSLT может не подойти хотя бы потому что HTML не обязан быть вэлидным XML. Если же это вэлидный XML, то нефиг изобретать велосипед (то же самое фактически, только на PHP для кучи):
<?php
$document = new DOMDocument();
$document->loadHTMLFile($url);
foreach( $document->getElementsByTagName('a') as $link )
echo $link->getAttribute('href') . "\n";
14.08.10 10:19
in Antwort femidav 14.08.10 02:44
Что то мне подсказывает, что ТС хочет просто граббить с чужих сайтов линки, не более того...
Если я вдруг прав, то все можно средствами браузера, например, для ФФ есть аддон - вот он - после его установки в меню Page info появляется доп. пункт - Links, ну и больше ничего не нада..Для оперы полагаю тоже все есть..
Если я вдруг прав, то все можно средствами браузера, например, для ФФ есть аддон - вот он - после его установки в меню Page info появляется доп. пункт - Links, ну и больше ничего не нада..Для оперы полагаю тоже все есть..
NEW 14.08.10 10:33
Мне как то один гаврик предложил с одной CD тоже ссылки и емаил адреса вытянуть.
Сказал, что всё легально.
Когда я лицензию этого диска прочитал, то понял, что мне светило бы как минимум тысячи так 60 евро штрафу,
ну и ему тоже.
Фирма сделавшая этот диск, вставила ловушки в него.
И эти ловушки мог миновать только тот, кто покупал лицензию на определённое количество адресов.
in Antwort alexnaum 14.08.10 10:19
В ответ на:
Что то мне подсказывает...
Что то мне подсказывает...
Мне как то один гаврик предложил с одной CD тоже ссылки и емаил адреса вытянуть.
Сказал, что всё легально.
Когда я лицензию этого диска прочитал, то понял, что мне светило бы как минимум тысячи так 60 евро штрафу,
ну и ему тоже.
Фирма сделавшая этот диск, вставила ловушки в него.
И эти ловушки мог миновать только тот, кто покупал лицензию на определённое количество адресов.
NEW 14.08.10 10:47
in Antwort Vovan(ator) 14.08.10 10:33
NEW 14.08.10 13:01
in Antwort voxel3d 14.08.10 10:47
Диск содержал всю контактную информацию о придприятиях в транспортной сфере Германии и австрии,
может даже полностью европы, не помню уже.
А ловушки были следующего плана.
Среди нормальных адресов были подставные,
ты как рассыльщик собственной рекламы,
рассылаешь естественно все свои данные по адресам находящимся на диске.
Если у тебя есть лицензия, ты получаешь код, при помощи которого ты отключаешь эти адреса-ловушки.
А если ты нелегально пытаешся вытащить эти адреса, то с большой вероятностью отошлёшь
свою рекламу на подставной адрес.
ну и потом естественно начнуться разборки
Ну и помимо всего, диск был зашифрован (verschlusselt)
Мне пришлось долго повозиться, пока я хоть что то смог нормально прочитать.
А потом чёт очень захотелось почитать AGB и лицензию, с чего это они так это всё заперли
Ну и естественно, как я лицензию прочитал, и всю документацию,
а потом "владельцу" диска сообщил, так он сразу от своих намерений отказался
может даже полностью европы, не помню уже.
А ловушки были следующего плана.
Среди нормальных адресов были подставные,
ты как рассыльщик собственной рекламы,
рассылаешь естественно все свои данные по адресам находящимся на диске.
Если у тебя есть лицензия, ты получаешь код, при помощи которого ты отключаешь эти адреса-ловушки.
А если ты нелегально пытаешся вытащить эти адреса, то с большой вероятностью отошлёшь
свою рекламу на подставной адрес.
ну и потом естественно начнуться разборки

Ну и помимо всего, диск был зашифрован (verschlusselt)
Мне пришлось долго повозиться, пока я хоть что то смог нормально прочитать.
А потом чёт очень захотелось почитать AGB и лицензию, с чего это они так это всё заперли

Ну и естественно, как я лицензию прочитал, и всю документацию,
а потом "владельцу" диска сообщил, так он сразу от своих намерений отказался

NEW 14.08.10 13:32
in Antwort voxel3d 14.08.10 01:36
Примерно так:
Если надо еще что-то - меняется содержимое в <xsl:template match="a">
В ответ на:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="a">
<xsl:value-of select="@href"/><br />
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="a">
<xsl:value-of select="@href"/><br />
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
Если надо еще что-то - меняется содержимое в <xsl:template match="a">
NEW 14.08.10 17:26
in Antwort femidav 14.08.10 02:44
А XSLT может не подойти хотя бы потому что HTML не обязан быть вэлидным XML.
-------
Это - да. Правда всегда есть возможность провести преобразование html <-> xhtml.
$document->getElementsByTagName('a')
------
У document обычно доступно свойство LINKS...
-------
Это - да. Правда всегда есть возможность провести преобразование html <-> xhtml.
$document->getElementsByTagName('a')
------
У document обычно доступно свойство LINKS...

NEW 14.08.10 20:03
Если HTML настолько покоцанный как на этом сайте, то преобразование автоматически будет сложновато сделать.
Ты всегда такой невнимательный? document - это не более чем название переменной. Я мог бы и $foo->getElementsByTagName('a') написать.
in Antwort Murr_0003 14.08.10 17:26
В ответ на:
Это - да. Правда всегда есть возможность провести преобразование html <-> xhtml.
Это - да. Правда всегда есть возможность провести преобразование html <-> xhtml.
Если HTML настолько покоцанный как на этом сайте, то преобразование автоматически будет сложновато сделать.
В ответ на:
У document обычно доступно свойство LINKS...
У document обычно доступно свойство LINKS...
Ты всегда такой невнимательный? document - это не более чем название переменной. Я мог бы и $foo->getElementsByTagName('a') написать.
NEW 14.08.10 22:46
in Antwort femidav 14.08.10 20:03
преобразование автоматически будет сложновато сделать.
-----
Save as и опция xhtml?
Но - Да, большинство источников отдают грязный html и сам html не есть xhtml...
Ты всегда такой невнимательный?
-----
Я достаточно внимательный - new DOMDocument() - должно давать после загрузки html что-то с уже отфильтрованными с линками...
Ну может и ошибся, но ровно на то, какой именно DOMDocument используется - возьмешь нужный и все будет.
Там, в принципе, есть совсем простое решение - JS + FSO, но надо разрешать использование FSO, а это не есть хорошо... Потому Я его и не упоминал...
-----
Save as и опция xhtml?

Но - Да, большинство источников отдают грязный html и сам html не есть xhtml...
Ты всегда такой невнимательный?
-----
Я достаточно внимательный - new DOMDocument() - должно давать после загрузки html что-то с уже отфильтрованными с линками...
Ну может и ошибся, но ровно на то, какой именно DOMDocument используется - возьмешь нужный и все будет.

Там, в принципе, есть совсем простое решение - JS + FSO, но надо разрешать использование FSO, а это не есть хорошо... Потому Я его и не упоминал...
NEW 14.08.10 23:07
Нет, не внимательный. Ясно было, что речь об этом: http://de.php.net/manual/de/class.domdocument.php
Зачем FSO??
in Antwort Murr_0003 14.08.10 22:46, Zuletzt geändert 14.08.10 23:10 (femidav)
В ответ на:
Я достаточно внимательный - new DOMDocument() - должно давать после загрузки html что-то с уже отфильтрованными с линками...
Я достаточно внимательный - new DOMDocument() - должно давать после загрузки html что-то с уже отфильтрованными с линками...
Нет, не внимательный. Ясно было, что речь об этом: http://de.php.net/manual/de/class.domdocument.php
В ответ на:
Там, в принципе, есть совсем простое решение - JS + FSO, но надо разрешать использование FSO, а это не есть хорошо...
Там, в принципе, есть совсем простое решение - JS + FSO, но надо разрешать использование FSO, а это не есть хорошо...
Зачем FSO??
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type='text/javascript'>
$(function () {
var text = "";
$('a').each(function() {
text += $(this).attr("href") + "\n";
});
$('body').prepend("<textarea id='links' rows='10' style='width:100%'>" + text + "</textarea>");
});
</script>
Хотя можно конечно с минимальными затратами это как add-on оформить, и даже сразу в sqlite писать.
NEW 15.08.10 00:57
in Antwort femidav 14.08.10 23:07
Ясно было, что речь об этом
------
Я не смотрел РНР и весьма невнятно представляю какой из DOMDocument'ов там используется и как заменяется другим.
В СБилдере и .Нет Я выбираю тот, который ближе к задаче - с линками...
Просто выбери нужный.
Зачем FSO??
-----
А куда его выгружать?
с минимальными затратами это как add-on оформить
------
Это будет проще чем перловый скрипт
voxel3d или мой XSLT? Особенно в плане обработки пары тысяч файликов в баче?
------
Я не смотрел РНР и весьма невнятно представляю какой из DOMDocument'ов там используется и как заменяется другим.
В СБилдере и .Нет Я выбираю тот, который ближе к задаче - с линками...
Просто выбери нужный.

Зачем FSO??
-----
А куда его выгружать?
с минимальными затратами это как add-on оформить
------
Это будет проще чем перловый скрипт
