【问题标题】:How to get large pictures in Google image如何在谷歌图片中获取大图片
【发布时间】:2014-09-19 03:25:35
【问题描述】:

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

例如,URL https://www.google.com/search?q=banana&hl=en&gws_rd=ssl&tbm=isch 在我的浏览器中很好,但在 web 收获中它报告说:对实体“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>  

【问题讨论】:

  • 您是否尝试将 & 符号更改为 & ?
  • 谢谢,但你的意思是把网址改成google.com.hk/…?它可以工作,但是我在 web-harvest 中获得的 html 与我浏览器中的不同。

标签: web web-scraping google-crawlers webharvest


【解决方案1】:

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

编辑

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

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

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

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

【讨论】:

  • 非常感谢您的回复。我已经更新了我的帖子。我使用 google chrome 来帮助我找到 xpath 的表达式,即“检查元素”和“复制 xpath”。上面显示的代码示例旨在获取第一张大图片的url。但事实证明 largeImgUrl 是空的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 2018-01-23
相关资源
最近更新 更多