如何在Google图片中获取大图片

时间:2014-09-19 03:25:36

标签: web web-scraping google-crawlers webharvest

我想从Google图片搜索中收集图片。但是,我经常收到错误通知。

例如,我的浏览器中的网址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>  

1 个答案:

答案 0 :(得分:0)

根据经验,您需要先将url存储在变量中,然后从http处理器调用中引用变量

修改

我注意到您已粘贴代码。好。

1)请记住,所有的webharvest配置文件都是用XML编写的,而amersand &amp; 是XML中的特殊字符,因为它是entity declaration的一部分。 在webharvest中,我通过在<template><code>块中使用CDATA sections来正常避免此问题。

2)使用webharvest图形界面时,您可以轻松调试xpath表达式。正常运行您的代码,然后在顶部的工具栏上单击带有巨大玻璃的图标。然后选择“xml”(您设置的变量的名称)。这将打开一个新窗口,预览xml。确保“查看为”下拉列表设置为xml 您现在应该有一个“xpath表达式”框,您可以在其中测试xpath。 webharvest variable preview

3)我强烈反对编写引用编号元素的xpath。 (例如div[4]/div[1]/div/div[2]/div[1]/)。基础页面中的任何小变化通常都会破坏代码。最好根据id或其他属性选择元素。