Парсинг AJAX сайтов
или, возможно, нужно копать в другом направлении, чтобы решить задачуВозможно, будет лучше исследовать HTTP запросы, которые JS посылает своему серверу, и делать такие же самому.
Глянь selenium, там вроде можно все это эмулировать. На выходе как раз ява-класс получается.
собственно, как почти во всем современном вебесовременный это тот, который не индексируется поисковиками?
современный это тот, который не индексируется поисковиками?ну вот блогпост, например, такой. Но он как-то индексируется поисковиками. Некоторые движки вообще не имеют представления об ином способе динамичной генерации контекста кроме ajax.
ну вот блогпост, например, такой. Но он как-то индексируется поисковиками. Некоторые движки вообще не имеют представления об ином способе динамичной генерации контекста кроме ajax.Честно говоря, не понял, что за мысль ты пытался донести до нас.
Дополнительно могу сказать, что вижу как минимум два механизма решения озвученной проблемы.
1. Некоторые поисковики всё-таки умеют читать яваскрипт
2. Для поисковика можно предоставлять привилегированный доступ
Гугл уже вроде норм индексирует аяксовую часть, а раньше да - используешь аякс (gwt, vaadin) можешь забыть про индексацию.
блогспот принадлежит гуглу. я думаю в последнюю очеред при написании интерфейсе на аяксе они думали "а как же его будут индексировать поисковики".
Дополнительно могу сказать, что вижу как минимум два механизма решения озвученной проблемы.Как мне кажется, 1 не верно в общем случае.
1. Некоторые поисковики всё-таки умеют читать яваскрипт
2. Для поисковика можно предоставлять привилегированный доступ
Что такое привилегированный доступ, я не знаю. Возможно, ты имеешь в виду, что уважающие себя сайты (желающие индексироваться поисковиками) предусматривают тот или иной метод отдачи AJAX-содержимого краулеру в виде обычных веб-страничек. С этим я согласен.
Например, можешь посмотреть на ссылку, которую в этом треде дают уже второй раз.
Смотри у каких браузеров/движков есть API
посмотри webkit
Пару лет назад слышал доклад от какой-то компании, люди для этого с Firefox собирались, он выполнял весь рендер и помимо готового DOM рассказывал еще и о физическом расположении элементов друг относительно друга на экране.
Можно и без браузера, только движек
Можно и без браузера, только движекпод наиболее используемые браузеры сайты тестируются, а под эту хрень вряд ли, и все проблемы будешь разгребать сам
http://phantomjs.org/
под наиболее используемые браузеры сайты тестируются,ну вот что мешает всем этим пидорасам писать не под браузеры, а под стандарт? Почему толпа хомячков соглашается с подобным состояниям вещей? Почему эти идиоты считают, что quake - это веб игра, если она требует огромного блоба с собственно игрой в качестве плагина?
Только всеобщая компьютерная грамотность способна спасти нашу индустрию от дальнейшего погружения в гавно. Но школьное образование такое неповоротливое!
это не про наш мир, стандарт это стандарт, а имплементация это ближе к реальности, работает именно имплементация, а не стандарт.
ну вот что мешает всем этим пидорасам писать не под браузеры, а под стандарт?Потому что код, написанный под стандарт, отображается во всех браузерах по-своему, и совершенно не так, как тебе надо. А клиенты платят деньги, за то, чтобы сайт у них работал и красиво отображался, а не за то, чтобы им выводилась табличка: "Обновите ваш браузер до версии, поддерживающей стандарт".
ну вот что мешает всем этим пидорасам писать не под браузеры, а под стандарт?Тоже самое, что мешает людям писать на форуме предложения с большой буквы и ставить знаки препинания.
В обоих случаях, поддерживать стандарт хлопотно, и кажется, что соответствие стандарта никому не нужно и это выброшенные на ветер усилия.
ps
т.е. вопрос скорее должен быть "Что можно сделать, чтобы стандарты было выгодно поддерживать?", а не "Почему люди отказываются от поддержки стандартов?". Ответ на второй вопрос тривиальный: для исполнителей так удобнее.
Тоже самое, что мешает людям писать на форуме предложения с большой буквы и ставить знаки препинания.неудачное сравнение: отсутствие больших букв и умеренные пропуски пунктуации не влияют на восприятие текста, т.к. в сосуществующем устном стандарте эти понятия отсутствуют или не выражены в том же объеме
В обоих случаях, поддерживать стандарт хлопотно, и кажется, что соответствие стандарта никому не нужно и это выброшенные на ветер усилия.
"Почему люди отказываются от поддержки стандартов?"Ну так я сразу же и дополнил вопрос. Почему с одной стороны люди (исполнители) отказываются от поддержки стандарта, а с другой стороны люди (потребители) готовы терпеть такое состояние дел?
Вопросы взаимосвязаны, и второе во многом определяет первое.
Или вот другой пример.
Почему, например, люди (покупатели) продолжают ходить в магазины, где приобрели испортившуюся продукцию, не получив при этом никакой компенсации. Почему нужна вообще сторонняя организация вроде РосПотребНадзора (у нас он взятками затыкается элементарно, к сожалению) для чмырения нечестных на руку продавцов, когда, организовавшись, потребители способны наказать таких продавцов гораздо сильнее?
неудачное сравнение: отсутствие больших букв и умеренные пропуски пунктуации не влияют на восприятие текста, т.к. в сосуществующем устном стандарте эти понятия отсутствуют или не выражены в том же объемеСравнение как раз удачное и обоснование такое же: сайты отходят от поддержки формального стандарта js, т.к. в существующем стандарте де факто по взаимодействию сайтов и браузеров такое допускается.
ps
соответствие при этом 1 в 1:
формальный стандарт на грамматику русского языка <-> формальный стандарт на js
неформальный стандарт де факто на разговорную речь в письменной форме <-> неформальный стандарт де факто на взаимодействие сайтов и браузеров
Механизмы познания, доступные технике, принципиально различаются. И поэтому для них не подходит путь, пригодный для органической формы жизни. Технике вовсе не обязательно повторять все ошибки, присущие стохастической эволюции. Вы ведь никогда не видели, чтобы в автомобиле диаметр болтов непрерывно рос в течении жизни автомобиля как растут ветки на дереве? Тогда зачем сравнивать органику и технику?
Все эти игрушки с убеганием и возвращением обратно к открытым стандартам всего лишь следствие попыток многих компаний добиться сверхприбылей, заключив пользователей и сторонних разработчиков в vendor lock-in (разумеется, объяснив им, что это для их же блага, благо что население у нас вполне внушаемое).
Почему, например, люди (покупатели) продолжают ходить в магазины, где приобрели испортившуюся продукцию, не получив при этом никакой компенсации.Потому что такое поведение выгодно для отдельного покупателя. Компенсация не покрывает затраты на ее требование. Смена магазина на более отдаленный и т.д. также не выгодна.
И эта проблема решается увеличением компенсации и добавлением посредника, который берет на себя выставление претензии.
Потому что такое поведение выгодно для отдельного покупателя.Это локальный максимум. Для одного покупателя - это выгодно. А для покупателей в целом - вредно.
отклонение от стандарта js для части аудитории просто приведет к ошибке или другому неожиданному результату
Все эти игрушки с убеганием и возвращением обратно к открытым стандартам всего лишь следствие попыток многих компаний добиться сверхприбылей, заключив пользователей и сторонних разработчиков в vendor lock-in (разумеется, объяснив им, что это для их же блага, благо что население у нас вполне внушаемое).Ты передергиваешь, перескакивая от конфликта между формальным стандартом vs стандарт де факто к конфликту открытые стандарты vs закрытые стандарты.
Переход от формальных стандартов к стандартам де факто - это норма для эволюционирующей системы. В целом, это следует из Геделя о неполноте: формальный стандарт всегда содержит и будет содержать туманные лакуны, о которых приходится договариваться по месту, что и дает толчок стандарту де факто.
Механизмы познания, доступные технике, принципиально различаются. И поэтому для них не подходит путь, пригодный для органической формы жизни. Технике вовсе не обязательно повторять все ошибки, присущие стохастической эволюции. Вы ведь никогда не видели, чтобы в автомобиле диаметр болтов непрерывно рос в течении жизни автомобиля как растут ветки на дереве? Тогда зачем сравнивать органику и технику?Неверно. Механизмы все те же самые. Как только у техники появляется возможность делать адаптацию (выбор скорости в модеме, выбор протокола при общении клиента и сервера и т.д. т.к. сразу начинают работать все те же самые закономерности, что и для органики. Пример с болтами не удачный, потому что в данном случае техника никакой адаптации не делает - всё уже предрешено до этого.
Это локальный максимум. Для одного покупателя - это выгодно. А для покупателей в целом - вредно.И это решается только одним способом, когда общество что-нибудь делает(доплачивает или заставляет чтобы превратить выгоду для всех в выгоду для одного
нет же, отклонение от письменного стандарта, о котором шла речь, не влияет на восприятие текста, т.е. любой читающий с большой вероятностью воспримет те же образыЭто ничем не обоснованное утверждение. И есть даже контрпример - код, который разбивает текст на предложения, ломается на таком примере.
Переход от формальных стандартов к стандартам де факто - это норма для эволюционирующей системы. В целом, это следует из Геделя о неполноте: формальный стандарт всегда содержит и будет содержать туманные лакуны, о которых приходится договариваться по месту, что и дает толчок стандарту де факто.Человек хочет при общении с другим человеком выражать произвольные понятия. Для компьютера такие цели недоступны. Зато компьютер способен быстро и точно проводить расчёты. Было бы странно отказываться от точности, приняв все недостатки человеческой модели общения, ради недостижимой цели повторить человека.
Или теорема геделя не верна, или ты её применяешь неправильно, потому что есть множество примеров существования и нормального функционирования формальных стандартов. Начнём с TCP/IP, ANSI C и zlib.
И есть даже контрпример - код, который разбивает текст на предложения, ломается на таком примере.речь, конечно, о человеческом восприятии, которое далеко не всегда заканчивается формальным и осознанным синтаксическим разбором
код из твоего примера просто несовершенен
конечно, если бы задача людей была писать тексты, которые понимают машинные парсеры, то в этом случае точно так же кто-нибудь отстаивал бы необходимость следования формальному стандарту языка
Начнём с TCP/IP, ANSI C и zlib.Плохие примеры. Под каждый из них расширений де факто больше, чем размер самого стандарта.
Зато компьютер способен быстро и точно проводить расчёты. Было бы странно отказываться от точности, приняв все недостатки человеческой модели общения, ради недостижимой цели повторить человека.При взаимодействии нескольких независимых элементов важна гибкость, а не просто точность (т.к. независимые элементы меняются с разной скоростью).
Например, браузер должен уметь поддерживать все версии стандартов html/xhtml(и draft-ов желательно тоже разные виды кодировки и т.д., что реальнее сделать через один гибкий парсер, чем через десяток точных парсеров.
Например, браузер должен уметь поддерживать все версии стандартов html/xhtml(и draft-ов желательно тожедавай так. В моих понятиях "поддерживать стандарт" - это следовать ему. А что это значит для тебя?
P.S. gcc поддерживает кучу стандартов и даже немного драфтов. Но при этом по-прежнему выдаёт ошибку в ответ на код, не соответствующий стандарту
Переход от формальных стандартов к стандартам де факто - это норма для эволюционирующей системы.Смотри. Возьмём какое-нибудь правовое государство. Его правовая система эволюционирует, для этого его законодательная система принимает новые законы. Но при этом закон един и для всех! И населению это нравится, вот парадокс! Так что стандарты де факто не являются нормой для данной эволюционирующей системы
Его правовая система эволюционирует, для этого его законодательная система принимает новые законы. Но при этом закон един и для всех!Опять ты перескакиваешь, теперь с конфликта "формальный стандарт vs стандарт де факто" на конфликт "стандарт один для всех vs стандарт разный под разные группы".
Если продолжить твой пример с правовой системой и взять США, то там право основано на стандарте де факто (благодаря прецедентному праву эволюционирует и едино для всех.
Если вернутся к браузерам и сайтам, то в данном случае тоже есть один стандарт де факто для всех, а то, что его не поддерживает http://phantomjs.org/ это лишь его проблемы.
Так что стандарты де факто не являются нормой для данной эволюционирующей системыФормальный стандарт может быть нормой только для очень-очень жесткой централизованной системы, когда каждая самая мельчайшая мелочь утверждается в едином центре и за каждое мельчайшее отклонение вменяются суровые санкции. Во всех остальных случаях нормой является стандарт де факто
"формальный стандарт vs стандарт де факто" на конфликт "стандарт один для всех vs стандарт разный под разные группы".Я человек практичный. Если уж тебе так хочется называть это стандартом де факто, то пусть так и будет, что спорить о терминологии. Главное чтобы он был один для всех, что в случае с браузерами и сайтами не наблюдается.
Оставить комментарий
valkiria77
Есть задача парсинга сайтов на которых нужная инфа тащится при помощи AJAX, (собственно, как почти во всем современном вебе есть ли готовые библиотеки для Java которые бы эмулировали JS, или, возможно, нужно копать в другом направлении, чтобы решить задачу?