Как разобрать сгенерированные javascript URL в Ruby? - PullRequest
0 голосов
/ 20 июля 2011

Мой первый вопрос здесь, так что давайте будем краткими.

Я занимаюсь разбором этого сайта: http://78.133.214.226/fotoweb/Grid.fwx с помощью ruby ​​mechanize.Я получаю страницу и размещаю поисковый запрос в форму.

Я получаю, например: http://78.133.214.226/fotoweb/Grid.fwx?archiveId=5002&SF_LASTSEARCH=Doda+and+Doda&SF_FIELD1_GROUP=1&SF_GROUP1_BOOLEAN=and&SF_FIELD1_MATCHTYPE=all&SF_FIELD1=Doda&SF_SEARCHINRESULT=0&SF_GROUP2_BOOLEAN=and&SF_GROUP2_FIELD=FQYFT&SF_FIELD2_GROUP=2&SF_FIELD2_MATCHTYPE=exact&SF_FIELD2_BOOLEAN=and&SF_FIELD2=&SF_FIELD3_MATCHTYPE=exact&SF_FIELD3_BOOLEAN=and&SF_FIELD3_GROUP=1&SF_FIELD3=&doSearch=Go

Затем я хочу проанализировать результаты, чтобы получить:

1.description 2.filename 3.url to thumbnail

1 и 2 легко, но я не могу получить 3. Когда я проверяю изображение, я вижу src миниатюры, но когда я получаю этот элемент с механизацией, его нет.

Любая подсказка, где я могуИщите подходящий инструмент для работы?

Ответы [ 2 ]

0 голосов
/ 28 марта 2015

Вы можете сохранять страницы с сгенерированными js с phantomjs, затем вы можете анализировать содержимое из сохраненных файлов с помощью mechanize

0 голосов
/ 20 июля 2011

Если вы просматриваете страницу в браузере, то вполне вероятно, что ее DOM манипулировал javascript, и поэтому он отличается от того, который может показаться механизированным. Mechanize не обрабатывает javascript и поэтому может получить только исходный HTML-код, который веб-сайт отправляет пользователю. Я рекомендую использовать такой инструмент, как cURL, чтобы получить необработанный html (как его увидел бы Mechanize), а затем проверить эту версию в браузере, чтобы решить, что вы хотите выбрать позже, используя Mechanize.

Я попытался свернуть вашу страницу, и вы правы, что src не связан с тегами img. Вероятно, сделано, чтобы избежать соскоба! Вы можете изучить прилагаемый javascript и посмотреть, есть ли какое-либо отношение, которое вы можете использовать, чтобы выяснить исходные URL-адреса из данных, которые вы можете извлечь.

...