Как получить большие картинки в Google Image

Я хочу собирать картинки из поиска картинок Google. Однако меня постоянно уведомляют об ошибке.

Например, URL https://www.google.com/search?q=banana&hl=en&gws_rd=ssl&tbm=isch подходит для моего браузера, но в веб-сборе он сообщает, что: ссылка на объект «gws_rd» должна заканчиваться на ';' разделитель.

Я предполагаю, что '&' - это специальный символ в webharvest, но я не могу найти информацию о нем. Вы можете понять почему?

Это код:

<var-def name="search" overwrite="false">banana</var-def>

<var-def name="url"><template>http://images.google.com/images?q=${search}&amp;hl=en</template></var-def>
<var-def name="xml">
    <html-to-xml>
        <http url="${url}"/>
    </html-to-xml>
</var-def>
<var-def name="largeImgUrl">
    <xpath expression="//*[@id='irc_cc']/div[4]/div[1]/div/div[2]/div[1]/a/img">
        <var name="xml"/>
    </xpath>
</var-def>  

person user3672968    schedule 19.09.2014    source источник
comment
Вы пробовали поменять амперсанды на?   -  person noko    schedule 19.09.2014
comment
Спасибо, но вы имеете в виду изменить URL-адрес на google.com. hk /? Это работает, но HTML, который я получил в веб-сборе, отличается от того, который был в моем браузере.   -  person user3672968    schedule 19.09.2014


Ответы (1)


по опыту вам нужно сначала сохранить URL-адрес в переменной, а затем ссылаться на переменную из вызова процессора http

РЕДАКТИРОВАТЬ

Я заметил, что вы вставили свой код. Хороший.

1) помните, что все файлы конфигурации webharvest написаны в XML, а amersand & - это специальный символ в XML, поскольку он является частью объявление объекта
В webharvest я обычно избегаю этой проблемы, используя разделы CDATA в <template> или <code> блоках.

2) при использовании графического интерфейса webharvest вы можете легко отлаживать свои выражения xpath. Запустите свой код как обычно, а затем на панели инструментов вверху щелкните значок с увеличивающимся стеклом. Затем выберите «xml» (имя установленной вами переменной). Это откроет новое окно с предварительным просмотром вашего xml. Убедитесь, что в раскрывающемся списке «Просмотр как» задано значение xml.
Теперь у вас должно быть поле «выражение xpath», в котором вы можете проверить свой xpath. предварительный просмотр переменной webharvest

3) Я настоятельно не рекомендую писать xpath, относящиеся к пронумерованным элементам. (например, div[4]/div[1]/div/div[2]/div[1]/). Любое небольшое изменение на базовой странице обычно нарушает код. Намного лучше выбирать элементы на основе идентификатора или других свойств.

person user3616725    schedule 26.09.2014
comment
Большое спасибо за ваш ответ. Я обновил свой пост. Я использую Google Chrome, чтобы найти выражение xpath, то есть «проверить элемент» и «скопировать xpath». Приведенный выше пример кода предназначен для получения URL-адреса первого большого изображения. Но оказывается, что largeImgUrl пуст. - person user3672968; 13.10.2014