Парсинг страницы
От: Аноним  
Дата: 08.10.09 16:56
Оценка:
Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на avto.ru при выборе автомобиля,там характеристики всякие. Задача стоит в том чтобы скормить приложению ссылку. А он уже скачал код и то что надо нашел и записал в базу. Вобщем хотелось бы услышать разные мнения кто как начал бы делать.
Re: Парсинг страницы
От: pumpurumer  
Дата: 08.10.09 18:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на avto.ru при выборе автомобиля,там характеристики всякие. Задача стоит в том чтобы скормить приложению ссылку. А он уже скачал код и то что надо нашел и записал в базу. Вобщем хотелось бы услышать разные мнения кто как начал бы делать.


[берд]
1) каким-то способом конвертировать в plain-text, а потом этот plain-text парсить
2) брать какую-то систему для тестирования веба и с ее помошью выдирать контент (selenium,watin)
[/бред]

а ваобше задача несовсем понятно, какие данные, как часто, и сколько сайтов 1,10,100,1000???
Re[2]: Парсинг страницы
От: Аноним  
Дата: 08.10.09 19:00
Оценка:
Здравствуйте, pumpurumer, Вы писали:

P>а ваобше задача несовсем понятно, какие данные, как часто, и сколько сайтов 1,10,100,1000???


Ну вот смотри берем делаем выборку на сайте здесь Система должна загрузить код страницы и выдрать себе ссылки типа здесь а потом она должна загрузить текст с этйо ссылки и выбрать уже и записать себ данные,двигатель,модель,год,цена,и т п.
Re[3]: Парсинг страницы
От: pumpurumer  
Дата: 08.10.09 19:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, pumpurumer, Вы писали:


P>>а ваобше задача несовсем понятно, какие данные, как часто, и сколько сайтов 1,10,100,1000???


А>Ну вот смотри берем делаем выборку на сайте здесь Система должна загрузить код страницы и выдрать себе ссылки типа здесь а потом она должна загрузить текст с этйо ссылки и выбрать уже и записать себ данные,двигатель,модель,год,цена,и т п.


по выборке страниц: незнаю чем это на .net сделать, а на perl есть какая-то либа, котороя может дернуть все url на заданной странице. соотвецтвенно зная формат урлов которые тебе нужны например должно в урле быть /cars/used/sale/ можеш собрать список страничек которые необходимо загрузить, аналогично выдираются урлы для переходам по страницам поиска.
таким способом работает WWW::Search::Yandex, WWW::Search::Rambler смотреть их на http://search.cpan.org/
еше можно попробывать запустить wget в рекурсивном режиме на этот сайт. ну там на рекурсию кое-какие условия желательно еше поставить.
Re: Парсинг страницы
От: Аноним  
Дата: 08.10.09 19:44
Оценка:
Здравствуйте, Аноним:

 WebRequest req = WebRequest.Create(pageurl);
                
                HttpWebResponse response = (HttpWebResponse)req.GetResponse();


                if(response.StatusCode == HttpStatusCode.OK)
                {
                    Stream dataStream = response.GetResponseStream();
                    // Open the stream using a StreamReader for easy access.
                    StreamReader reader = new StreamReader(dataStream);

                    // Read the content.
                    this.htmlpage = reader.ReadToEnd();

                    // Cleanup the streams and the response.
                    reader.Close();
                    dataStream.Close();
                    response.Close();

                }

А потом используете регулярные выражения для получения необходимой информации.
Re[3]: Парсинг страницы
От: _Raz_  
Дата: 08.10.09 20:32
Оценка: +2
Здравствуйте, <Аноним>, Вы писали:

А>Ну вот смотри берем делаем выборку на сайте здесь

1.5. Запрещается использование автоматизированного извлечения информации данного сайта без письменного разрешения ООО «АВТО.РУ». Любое копирование, перепечатка и/или последующее распространение информации, представленной на данном сайте, или информации, полученной на основе этой информации в результате переработки, в том числе производимое путем кэширования, кадрирования или использованием аналогичных средств, строго запрещается без предварительного письменного разрешения ООО «АВТО.РУ». За нарушение настоящего правила наступает ответственность, предусмотренная законодательством и международными договорами РФ.


А> Система должна загрузить код страницы и выдрать себе ссылки типа здесь а потом она должна загрузить текст с этйо ссылки и выбрать уже и записать себ данные,двигатель,модель,год,цена,и т п.

Arachnode.net. Ссылка на вики. Что-то их сайт не открывается. Скачать можно с SourceForge.
... << RSDN@Home 1.2.0 alpha 4 rev. 1245>>
Re[4]: Парсинг страницы
От: Аноним  
Дата: 09.10.09 04:59
Оценка:
Здравствуйте, _Raz_, Вы писали:

_R_>Здравствуйте, <Аноним>, Вы писали:


_R_>1.5. Запрещается использование автоматизированного извлечения информации данного сайта без

а интересно, использование браузера это автоматизированное средство извлечения информации?
Re[5]: Парсинг страницы
От: _Raz_  
Дата: 09.10.09 07:13
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>а интересно, использование браузера это автоматизированное средство извлечения информации?

спросите в блоге у медведева.
... << RSDN@Home 1.2.0 alpha 4 rev. 1245>>
Re[2]: Парсинг страницы
От: _WerWolf_  
Дата: 09.10.09 10:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним:


А>А потом используете регулярные выражения для получения необходимой информации.


Зачем же Regex, когда есть более красивые решения:
HTML Agility — очень удобен и красив, искать соовтетственно можно что угодно с помощью обычного XPath, что как не крути гораздо мощнее Regex.
SgmlReader — впринципе тоже самое, только она в некоторых случаях лезет в инет, что не всегда удобно.
Re[3]: Парсинг страницы
От: _Raz_  
Дата: 09.10.09 12:00
Оценка:
Здравствуйте, _WerWolf_, Вы писали:

_WW>SgmlReader — впринципе тоже самое, только она в некоторых случаях лезет в инет, что не всегда удобно.

А иногда и критично.
При получении dtd xhtml11 strict парсер вылетает с ошибкой при обработке ProcessingInstruction. Конечно все исправляется за пол часа, но оно надо если мс не развивает продукт?

PS. С реализацией от мс не работал. На основании борьбы с sgmlreader с правками от mindtouch.
... << RSDN@Home 1.2.0 alpha 4 rev. 1245>>
Re[4]: Парсинг страницы
От: igna Россия  
Дата: 09.10.09 12:17
Оценка:
Здравствуйте, _Raz_, Вы писали:

_R_>1.5. Запрещается использование автоматизированного извлечения информации данного сайта без письменного разрешения ООО «АВТО.РУ». Любое копирование, перепечатка и/или последующее распространение информации, представленной на данном сайте, или информации, полученной на основе этой информации в результате переработки, в том числе производимое путем кэширования, кадрирования или использованием аналогичных средств, строго запрещается без предварительного письменного разрешения ООО «АВТО.РУ». За нарушение настоящего правила наступает ответственность, предусмотренная законодательством и международными договорами РФ.


Этот запрет вообще законен?
Re[5]: Парсинг страницы
От: _Raz_  
Дата: 09.10.09 12:40
Оценка:
Здравствуйте, igna, Вы писали:

I>

_R_>>1.5. Запрещается использование автоматизированного извлечения информации данного сайта без письменного разрешения ООО «АВТО.РУ». Любое копирование, перепечатка и/или последующее распространение информации, представленной на данном сайте, или информации, полученной на основе этой информации в результате переработки, в том числе производимое путем кэширования, кадрирования или использованием аналогичных средств, строго запрещается без предварительного письменного разрешения ООО «АВТО.РУ». За нарушение настоящего правила наступает ответственность, предусмотренная законодательством и международными договорами РФ.


I>Этот запрет вообще законен?


А фиг его знает. Это к юристам.
robots.txt и <meta> нет — я б сканил не задумываясь. Вопрос в том, что делать с полученной информацией.
... << RSDN@Home 1.2.0 alpha 4 rev. 1245>>
Re[5]: Парсинг страницы
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.09 09:01
Оценка:
Здравствуйте, igna, Вы писали:

I>Этот запрет вообще законен?

Конечно. Вообще — надо привыкнуть к тому, что вся информация, размещённая в интернете, принадлежит каким-то правообладателям.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Парсинг страницы
От: Cyberax Марс  
Дата: 13.10.09 09:06
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

I>>Этот запрет вообще законен?

S>Конечно. Вообще — надо привыкнуть к тому, что вся информация, размещённая в интернете, принадлежит каким-то правообладателям.
Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами.

Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос.
Sapienti sat!
Re: Парсинг страницы
От: GGoga  
Дата: 13.10.09 09:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на avto.ru при выборе автомобиля,там характеристики всякие. Задача стоит в том чтобы скормить приложению ссылку. А он уже скачал код и то что надо нашел и записал в базу. Вобщем хотелось бы услышать разные мнения кто как начал бы делать.


Как раз вчера реализовывал похожую задачу.
Требовалось: по наличию ссылок (все странички имеют одинаковый / почти одинаковый html-код) распарсить странички и выбрать определенные объявления (ссылки на страницы с рекламой).
Видел возможные решения: искать в Инете возможные html-парсеры, скачивать страницы и их парсить; аналогично скачивать страницы, преобразовывать html в xml (с помощью сторонних утилит) и парсить как xml; использовать класс WebBrowser.
Выбрал последнее. Потому что, этот контролл сам берет на себя построение и структурирование странички, требует мало кода от разработчика (у меня на все ушло 100 с "копейками" строк кода) и просто в понимании (не требовалось изучать документацию, которой зачастую даже нет, сторонних разработчиков) и пр. достоинства. Конечно же, есть и недостатки, но в моей ситуации они были не критичны.
Итого есть одна общедоступная функция у класса, получающая ссылку и набор (иерархию) тегов, и возвращающая массив строк, находящихся в указанных тегах. Полученные строки уже можно парсить как угодно.
Re[7]: Парсинг страницы
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.09 09:35
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами.
Само сканирование предъявить в суде практически нереально. А вот коммерческое использование полученной информации — только в путь.

C>Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос.

Ну, может там и есть дырки. Но он пока вообще очень новый, и практики применения пока что маловато. Впрочем, лично я, к примеру, всё равно бы заинтересовался подходящими статьями чисто на предмет лучшего понимания отдалённых последствий.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Парсинг страницы
От: Cyberax Марс  
Дата: 13.10.09 10:18
Оценка:
Здравствуйте, Sinclair, Вы писали:

C>>Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами.

S>Само сканирование предъявить в суде практически нереально. А вот коммерческое использование полученной информации — только в путь.
Что значит "коммерческое использование полученной информации"? Показ резульатов поиска на сайте с баннером? Продажа результатов автоматического ранжирования?

В общем, там сплошные вопросы.

C>>Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос.

S>Ну, может там и есть дырки. Но он пока вообще очень новый, и практики применения пока что маловато. Впрочем, лично я, к примеру, всё равно бы заинтересовался подходящими статьями чисто на предмет лучшего понимания отдалённых последствий.
Мой юрист занимался анализом ГК. В общем, по его словам — волосы дыбом от него. Он составлен не как нормальный закон, а для удовлетворения нужд определённых групп.

Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами.
Sapienti sat!
Re[9]: Парсинг страницы
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.09 10:45
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Что значит "коммерческое использование полученной информации"? Показ резульатов поиска на сайте с баннером? Продажа результатов автоматического ранжирования?
C>В общем, там сплошные вопросы.
Не думаю, что это представляет какую-либо трудность. Все имущественные права достаточно чётко перечислены в кодексе. К примеру, показ результатов поиска или майнинга — это, фактически, публичное воспроизведение без согласия правообладателя. А если немножко поработать с юристами, то и на УК можно наскрести.

C>Мой юрист занимался анализом ГК. В общем, по его словам — волосы дыбом от него. Он составлен не как нормальный закон, а для удовлетворения нужд определённых групп.


C>Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами.

Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен.

Тем не менее, я считаю, что в контексте данного форума углубляться в крючкотворство смысла нет. Авто.ру достаточно внятно изложили своё отношение именно к тому, чем собирается заниматься аноним — как бы оно ни квалифицировалось законом. Я считаю как минимум неэтичным идти на осознанное нарушение их пожеланий. Я бы мог по-другому к этому относиться — если бы авто.ру сам занимался сквоттерством. Но они собирают базу вполне легальными и небесплатными путями. Если кому-то хочется злоупотребить их базой — нужно просто позвонить им и поинтересоваться, почём они отдадут доступ к ней.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Парсинг страницы
От: Cyberax Марс  
Дата: 13.10.09 11:32
Оценка:
Здравствуйте, Sinclair, Вы писали:

C>>В общем, там сплошные вопросы.

S>Не думаю, что это представляет какую-либо трудность. Все имущественные права достаточно чётко перечислены в кодексе. К примеру, показ результатов поиска или майнинга — это, фактически, публичное воспроизведение без согласия правообладателя. А если немножко поработать с юристами, то и на УК можно наскрести.
Ты забываешь про обязательное лицензирование и справедливое использование

C>>Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами.

S>Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен.
Думаешь, тебе одному?

S>Тем не менее, я считаю, что в контексте данного форума углубляться в крючкотворство смысла нет. Авто.ру достаточно внятно изложили своё отношение именно к тому, чем собирается заниматься аноним — как бы оно ни квалифицировалось законом. Я считаю как минимум неэтичным идти на осознанное нарушение их пожеланий. Я бы мог по-другому к этому относиться — если бы авто.ру сам занимался сквоттерством. Но они собирают базу вполне легальными и небесплатными путями. Если кому-то хочется злоупотребить их базой — нужно просто позвонить им и поинтересоваться, почём они отдадут доступ к ней.

Тут есть детали. Если хочется сделать полностью автоматическую систему для всех подобных сайтов, которая не затачивалась бы специально под авто.ру — тогда можно было бы говорить о справедливом использовании.

Опять же, позиция авто.ру весьма лицемерная. С одной стороны, они хотят чтоб их индексировали поисковики, с другой стороны, они это запрещают правилами использования. Если бы они явно прописали "Disallow: *" в robots.txt, то я бы ещё понял.
Sapienti sat!
Re[11]: Парсинг страницы
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.09 11:54
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Ты забываешь про обязательное лицензирование и справедливое использование
А что у нас про "обязательность лицензирования"? Про справедливое использование — имхо, довольно трудно будет приплести его в случае "перепечатки и распространения".

S>>Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен.

C>Думаешь, тебе одному?
Приятно чувствовать себя в хорошей компании.

C>Тут есть детали. Если хочется сделать полностью автоматическую систему для всех подобных сайтов, которая не затачивалась бы специально под авто.ру — тогда можно было бы говорить о справедливом использовании.

Сама по себе разработка такой системы вообще ничему не противоречит. То есть, вменить разработчику "заведомо вредоносное ПО" из УК будет в данном случае крайне трудно. А ГК, имхо, на эту тему вообще ничего не говорит.
А вот использование такой системы на auto.ru будет квалифицироваться по-разному — в зависимости от того, каким способом ты применишь его результаты.

C>Опять же, позиция авто.ру весьма лицемерная. С одной стороны, они хотят чтоб их индексировали поисковики, с другой стороны, они это запрещают правилами использования. Если бы они явно прописали "Disallow: *" в robots.txt, то я бы ещё понял.

Я вовсе не уверен, что они хотят, чтобы их индексировали поисковики. Во времена, когда я подбирал себе машину, большинство сайтов вели себя так, как будто они строго против этого — даже тупо запомнить URL на search result можно было только у одного из дюжины.
Кроме того, ГК и robots.txt, насколько я могу понять, живут в разных плоскостях бытия.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.