Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на avto.ru при выборе автомобиля,там характеристики всякие. Задача стоит в том чтобы скормить приложению ссылку. А он уже скачал код и то что надо нашел и записал в базу. Вобщем хотелось бы услышать разные мнения кто как начал бы делать.
Здравствуйте, Аноним, Вы писали:
А>Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на 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???
Ну вот смотри берем делаем выборку на сайте здесь Система должна загрузить код страницы и выдрать себе ссылки типа здесь а потом она должна загрузить текст с этйо ссылки и выбрать уже и записать себ данные,двигатель,модель,год,цена,и т п.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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();
}
А потом используете регулярные выражения для получения необходимой информации.
Здравствуйте, <Аноним>, Вы писали:
А>Ну вот смотри берем делаем выборку на сайте здесь
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. Запрещается использование автоматизированного извлечения информации данного сайта без
а интересно, использование браузера это автоматизированное средство извлечения информации?
Здравствуйте, <Аноним>, Вы писали:
А>а интересно, использование браузера это автоматизированное средство извлечения информации?
спросите в блоге у медведева.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним:
А>А потом используете регулярные выражения для получения необходимой информации.
Зачем же Regex, когда есть более красивые решения: HTML Agility — очень удобен и красив, искать соовтетственно можно что угодно с помощью обычного XPath, что как не крути гораздо мощнее Regex. SgmlReader — впринципе тоже самое, только она в некоторых случаях лезет в инет, что не всегда удобно.
Здравствуйте, _WerWolf_, Вы писали:
_WW>SgmlReader — впринципе тоже самое, только она в некоторых случаях лезет в инет, что не всегда удобно.
А иногда и критично.
При получении dtd xhtml11 strict парсер вылетает с ошибкой при обработке ProcessingInstruction. Конечно все исправляется за пол часа, но оно надо если мс не развивает продукт?
PS. С реализацией от мс не работал. На основании борьбы с sgmlreader с правками от mindtouch.
_R_>1.5. Запрещается использование автоматизированного извлечения информации данного сайта без письменного разрешения ООО «АВТО.РУ». Любое копирование, перепечатка и/или последующее распространение информации, представленной на данном сайте, или информации, полученной на основе этой информации в результате переработки, в том числе производимое путем кэширования, кадрирования или использованием аналогичных средств, строго запрещается без предварительного письменного разрешения ООО «АВТО.РУ». За нарушение настоящего правила наступает ответственность, предусмотренная законодательством и международными договорами РФ.
_R_>>1.5. Запрещается использование автоматизированного извлечения информации данного сайта без письменного разрешения ООО «АВТО.РУ». Любое копирование, перепечатка и/или последующее распространение информации, представленной на данном сайте, или информации, полученной на основе этой информации в результате переработки, в том числе производимое путем кэширования, кадрирования или использованием аналогичных средств, строго запрещается без предварительного письменного разрешения ООО «АВТО.РУ». За нарушение настоящего правила наступает ответственность, предусмотренная законодательством и международными договорами РФ.
I>Этот запрет вообще законен?
А фиг его знает. Это к юристам.
robots.txt и <meta> нет — я б сканил не задумываясь. Вопрос в том, что делать с полученной информацией.
Здравствуйте, igna, Вы писали:
I>Этот запрет вообще законен?
Конечно. Вообще — надо привыкнуть к тому, что вся информация, размещённая в интернете, принадлежит каким-то правообладателям.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
I>>Этот запрет вообще законен? S>Конечно. Вообще — надо привыкнуть к тому, что вся информация, размещённая в интернете, принадлежит каким-то правообладателям.
Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами.
Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос.
Здравствуйте, Аноним, Вы писали:
А>Привет. Стоит значит такая задача,есть страницы которая выводит множество значений ,например как на avto.ru при выборе автомобиля,там характеристики всякие. Задача стоит в том чтобы скормить приложению ссылку. А он уже скачал код и то что надо нашел и записал в базу. Вобщем хотелось бы услышать разные мнения кто как начал бы делать.
Как раз вчера реализовывал похожую задачу.
Требовалось: по наличию ссылок (все странички имеют одинаковый / почти одинаковый html-код) распарсить странички и выбрать определенные объявления (ссылки на страницы с рекламой).
Видел возможные решения: искать в Инете возможные html-парсеры, скачивать страницы и их парсить; аналогично скачивать страницы, преобразовывать html в xml (с помощью сторонних утилит) и парсить как xml; использовать класс WebBrowser.
Выбрал последнее. Потому что, этот контролл сам берет на себя построение и структурирование странички, требует мало кода от разработчика (у меня на все ушло 100 с "копейками" строк кода) и просто в понимании (не требовалось изучать документацию, которой зачастую даже нет, сторонних разработчиков) и пр. достоинства. Конечно же, есть и недостатки, но в моей ситуации они были не критичны.
Итого есть одна общедоступная функция у класса, получающая ссылку и набор (иерархию) тегов, и возвращающая массив строк, находящихся в указанных тегах. Полученные строки уже можно парсить как угодно.
Здравствуйте, Cyberax, Вы писали: C>Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами.
Само сканирование предъявить в суде практически нереально. А вот коммерческое использование полученной информации — только в путь.
C>Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос.
Ну, может там и есть дырки. Но он пока вообще очень новый, и практики применения пока что маловато. Впрочем, лично я, к примеру, всё равно бы заинтересовался подходящими статьями чисто на предмет лучшего понимания отдалённых последствий.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Обычным средством контроля доступа для ботов в Инете является файл robots.txt. В этом случае его нет, соответственно при полностью автоматической индексации можно доказать, что нарушение не было предумышленными и не могло быть предотвращено техническими средствами. S>Само сканирование предъявить в суде практически нереально. А вот коммерческое использование полученной информации — только в путь.
Что значит "коммерческое использование полученной информации"? Показ резульатов поиска на сайте с баннером? Продажа результатов автоматического ранжирования?
В общем, там сплошные вопросы.
C>>Ну и текущий ГК противоречит сам себе, так что и с самой возможностью запрещения тоже вопрос. S>Ну, может там и есть дырки. Но он пока вообще очень новый, и практики применения пока что маловато. Впрочем, лично я, к примеру, всё равно бы заинтересовался подходящими статьями чисто на предмет лучшего понимания отдалённых последствий.
Мой юрист занимался анализом ГК. В общем, по его словам — волосы дыбом от него. Он составлен не как нормальный закон, а для удовлетворения нужд определённых групп.
Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами.
Здравствуйте, Cyberax, Вы писали: C>Что значит "коммерческое использование полученной информации"? Показ резульатов поиска на сайте с баннером? Продажа результатов автоматического ранжирования? C>В общем, там сплошные вопросы.
Не думаю, что это представляет какую-либо трудность. Все имущественные права достаточно чётко перечислены в кодексе. К примеру, показ результатов поиска или майнинга — это, фактически, публичное воспроизведение без согласия правообладателя. А если немножко поработать с юристами, то и на УК можно наскрести.
C>Мой юрист занимался анализом ГК. В общем, по его словам — волосы дыбом от него. Он составлен не как нормальный закон, а для удовлетворения нужд определённых групп.
C>Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами.
Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен.
Тем не менее, я считаю, что в контексте данного форума углубляться в крючкотворство смысла нет. Авто.ру достаточно внятно изложили своё отношение именно к тому, чем собирается заниматься аноним — как бы оно ни квалифицировалось законом. Я считаю как минимум неэтичным идти на осознанное нарушение их пожеланий. Я бы мог по-другому к этому относиться — если бы авто.ру сам занимался сквоттерством. Но они собирают базу вполне легальными и небесплатными путями. Если кому-то хочется злоупотребить их базой — нужно просто позвонить им и поинтересоваться, почём они отдадут доступ к ней.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>В общем, там сплошные вопросы. S>Не думаю, что это представляет какую-либо трудность. Все имущественные права достаточно чётко перечислены в кодексе. К примеру, показ результатов поиска или майнинга — это, фактически, публичное воспроизведение без согласия правообладателя. А если немножко поработать с юристами, то и на УК можно наскрести.
Ты забываешь про обязательное лицензирование и справедливое использование
C>>Там очень чётко прослеживаются две части: достаточно стандартный ГК по образцу других стран (вполне разумный, в общем-то), и местные добавления типа слегка странного коллективного управления авторскими правами. S>Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен.
Думаешь, тебе одному?
S>Тем не менее, я считаю, что в контексте данного форума углубляться в крючкотворство смысла нет. Авто.ру достаточно внятно изложили своё отношение именно к тому, чем собирается заниматься аноним — как бы оно ни квалифицировалось законом. Я считаю как минимум неэтичным идти на осознанное нарушение их пожеланий. Я бы мог по-другому к этому относиться — если бы авто.ру сам занимался сквоттерством. Но они собирают базу вполне легальными и небесплатными путями. Если кому-то хочется злоупотребить их базой — нужно просто позвонить им и поинтересоваться, почём они отдадут доступ к ней.
Тут есть детали. Если хочется сделать полностью автоматическую систему для всех подобных сайтов, которая не затачивалась бы специально под авто.ру — тогда можно было бы говорить о справедливом использовании.
Опять же, позиция авто.ру весьма лицемерная. С одной стороны, они хотят чтоб их индексировали поисковики, с другой стороны, они это запрещают правилами использования. Если бы они явно прописали "Disallow: *" в robots.txt, то я бы ещё понял.
Здравствуйте, Cyberax, Вы писали: C>Ты забываешь про обязательное лицензирование и справедливое использование
А что у нас про "обязательность лицензирования"? Про справедливое использование — имхо, довольно трудно будет приплести его в случае "перепечатки и распространения".
S>>Ну, я достаточно внятно представлял себе особенности старого ЗоАП, но при переносе его внутрь ГК произошли какие-то изменения, эффект которых мне до конца неясен. C>Думаешь, тебе одному? Приятно чувствовать себя в хорошей компании.
C>Тут есть детали. Если хочется сделать полностью автоматическую систему для всех подобных сайтов, которая не затачивалась бы специально под авто.ру — тогда можно было бы говорить о справедливом использовании.
Сама по себе разработка такой системы вообще ничему не противоречит. То есть, вменить разработчику "заведомо вредоносное ПО" из УК будет в данном случае крайне трудно. А ГК, имхо, на эту тему вообще ничего не говорит.
А вот использование такой системы на auto.ru будет квалифицироваться по-разному — в зависимости от того, каким способом ты применишь его результаты.
C>Опять же, позиция авто.ру весьма лицемерная. С одной стороны, они хотят чтоб их индексировали поисковики, с другой стороны, они это запрещают правилами использования. Если бы они явно прописали "Disallow: *" в robots.txt, то я бы ещё понял.
Я вовсе не уверен, что они хотят, чтобы их индексировали поисковики. Во времена, когда я подбирал себе машину, большинство сайтов вели себя так, как будто они строго против этого — даже тупо запомнить URL на search result можно было только у одного из дюжины.
Кроме того, ГК и robots.txt, насколько я могу понять, живут в разных плоскостях бытия.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Ты забываешь про обязательное лицензирование и справедливое использование S>А что у нас про "обязательность лицензирования"? Про справедливое использование — имхо, довольно трудно будет приплести его в случае "перепечатки и распространения".
Там есть тонкости.
C>>Тут есть детали. Если хочется сделать полностью автоматическую систему для всех подобных сайтов, которая не затачивалась бы специально под авто.ру — тогда можно было бы говорить о справедливом использовании. S>Сама по себе разработка такой системы вообще ничему не противоречит. То есть, вменить разработчику "заведомо вредоносное ПО" из УК будет в данном случае крайне трудно. А ГК, имхо, на эту тему вообще ничего не говорит.
Я имею в виду разработку и использование.
S>А вот использование такой системы на auto.ru будет квалифицироваться по-разному — в зависимости от того, каким способом ты применишь его результаты.
Ага.
C>>Опять же, позиция авто.ру весьма лицемерная. С одной стороны, они хотят чтоб их индексировали поисковики, с другой стороны, они это запрещают правилами использования. Если бы они явно прописали "Disallow: *" в robots.txt, то я бы ещё понял. S>Я вовсе не уверен, что они хотят, чтобы их индексировали поисковики. Во времена, когда я подбирал себе машину, большинство сайтов вели себя так, как будто они строго против этого — даже тупо запомнить URL на search result можно было только у одного из дюжины.
Если бы не хотели, то это решается одной строчкой в robots.txt. Yandex, Google, Rambler его слушаются.
S>Кроме того, ГК и robots.txt, насколько я могу понять, живут в разных плоскостях бытия.
Не совсем. Он является стандартом RFC, и его отсутствие может быть воспринято как разрешение на автоматическое сканирование.
Здравствуйте, Cyberax, Вы писали:
C>Там есть тонкости.
Это понятно. Какие?
C>Я имею в виду разработку и использование.
Вот тут надо бы быть точнее . Это ж как предикат в запросе к AD — чуть в сторону, и уже "группа лиц, по предварительному сговору".
C>Если бы не хотели, то это решается одной строчкой в robots.txt. Yandex, Google, Rambler его слушаются.
Тут у нас имеют место языковые нюансы. Disallow — это "хотят, чтобы не индексировали". А отсутствие robots.txt не значит вообще ничего.
Может быть, они хотят, чтобы индексировали. Может, они не хотят — то есть не испытывают желания, а проще говоря — им безразличны автоматические индексеры. Может быть, они хотят, чтобы не индексировали, но не знают про robots.txt — глупо ожидать от ламеров всеобщей распространённости знаний RFC. Вон, у нас тут в форумы регулярно прибегают мегапрограммеры для веба, которые про RFC 2616 слыхом не слыхивали.
C>Не совсем. Он является стандартом RFC, и его отсутствие может быть воспринято как разрешение на автоматическое сканирование.
RFC тоже живёт в совсем другой плоскости бытия, чем ГК. На всякий случай напомню, что авторство принадлежит автору в силу авторства.
Даже если на фотографии не нарисовано "перепечатка без согласования с правообладателем запрещена", то перепечатка без согласования с правообладателем таки запрещена. И узнать об этом можно уже потом, когда придёт волшебный факс с обозначенной суммой, требуемыми действиями и сроками выполнения того и другого.
robots.txt в данном случае играют роль именно такой "надписи", то есть никакую.
Формально, гугл и яндекс можно попробовать нагнуть за нарушение копирайта, но сделать это будет трудно. Во-первых, выдача результатов поиска пролезет через fair use — это цитирование, причём очень ограниченное. А вот translate.google.com — это уже публикация derivative works без согласования с правообладателем. Ну и cache — тоже публикация неопределённому кругу лиц.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Там есть тонкости. S>Это понятно. Какие?
См. ниже.
C>>Я имею в виду разработку и использование. S>Вот тут надо бы быть точнее . Это ж как предикат в запросе к AD — чуть в сторону, и уже "группа лиц, по предварительному сговору".
C>>Если бы не хотели, то это решается одной строчкой в robots.txt. Yandex, Google, Rambler его слушаются. S>Тут у нас имеют место языковые нюансы. Disallow — это "хотят, чтобы не индексировали". А отсутствие robots.txt не значит вообще ничего. S>Может быть, они хотят, чтобы индексировали. Может, они не хотят — то есть не испытывают желания, а проще говоря — им безразличны автоматические индексеры. Может быть, они хотят, чтобы не индексировали, но не знают про robots.txt — глупо ожидать от ламеров всеобщей распространённости знаний RFC. Вон, у нас тут в форумы регулярно прибегают мегапрограммеры для веба, которые про RFC 2616 слыхом не слыхивали.
Не совсем. Были решения при старом ГК, что авторы должны использовать соответствующие технические средства для ограничения доступа.
Т.е. ссылка с надписью "вам сюда кликать запрещено, тут коммерческая тайна" не может считаться средством контроля доступа. Соответственно, и статьи УК про несанкционированный доступ и прочее неприменимы. Вот если там будет даже поле ввода пароля (пусть там хоть admin/admin), тогда уже это будет преступлением.
При желании, аналогичный прецедент переносится на robots.txt.
C>>Не совсем. Он является стандартом RFC, и его отсутствие может быть воспринято как разрешение на автоматическое сканирование. S>RFC тоже живёт в совсем другой плоскости бытия, чем ГК. На всякий случай напомню, что авторство принадлежит автору в силу авторства.
Это понятно. Но ты тут уже сталкиваешься с проблемой публикации. А тут опять всё становится сложно.
S>Даже если на фотографии не нарисовано "перепечатка без согласования с правообладателем запрещена", то перепечатка без согласования с правообладателем таки запрещена. И узнать об этом можно уже потом, когда придёт волшебный факс с обозначенной суммой, требуемыми действиями и сроками выполнения того и другого. S>robots.txt в данном случае играют роль именно такой "надписи", то есть никакую.
Тут проводится аналогия со съёмками в публичном месте. Если ты снимешь улицу с плакатом на улице, и напечатаешь в своей книге — это будет вполне справедливым использованием.
А вот если ты снимешь плакат, потом поменяешь телефон на нём, и будешь тиражировать крупными партиями — уже будет "турма сидеть".
S>Формально, гугл и яндекс можно попробовать нагнуть за нарушение копирайта, но сделать это будет трудно. Во-первых, выдача результатов поиска пролезет через fair use — это цитирование, причём очень ограниченное. А вот translate.google.com — это уже публикация derivative works без согласования с правообладателем. Ну и cache — тоже публикация неопределённому кругу лиц.
Вот-вот.
Sapienti sat!
Re[2]: Парсинг страницы
От:
Аноним
Дата:
13.10.09 14:27
Оценка:
Здравствуйте, GGoga, Вы писали:
GG>Итого есть одна общедоступная функция у класса, получающая ссылку и набор (иерархию) тегов, и возвращающая массив строк, находящихся в указанных тегах. Полученные строки уже можно парсить как угодно.