【问题标题】:Red Font (In Firefox) <img> tags in HTML not seen by JSoupJSoup 看不到 HTML 中的红色字体(在 Firefox 中)<img> 标签
【发布时间】:2014-10-22 03:21:50
【问题描述】:

编辑:自我回答。 JSoup 确实找到了所有图像标签。

我试图从https://www.flickr.com/explore 上刮掉一些东西,但遇到了问题。

在源代码中,该网站上的主要图像是用红色字体编写的,我的JSoup select 方法(或getElementsByTag 方法)找不到它们。由于格式问题,如果你们自己访问网站并检查源代码会容易得多,但我会尝试在此处包含最低限度的内容。

编辑:我刚刚尝试通过chrome和IE查看源代码,图像标签不是红色的,所以我假设它是firefox格式。但问题仍然存在,JSoup 没有看到那些图像标签。 (文末二次编辑)

编辑 3: 删除了我粘贴的代码以将此打印屏幕放入:http://i.imgur.com/o8fNPnZ.png 注意红色块是主要用户上传的图像(我想要的),你可以看到其他不是红色的 img 标签(但那些只是像小标志这样的东西)。当我运行代码时

Elements imageElements = doc.select("img");

然后打印出来,我得到所有不是红色的标签。

我对 HTML 或 CSS 不是很有经验,有什么我不知道的具体内容吗?或者它在我的代码中?有没有办法检索“红色”字体图像?

编辑 2: 好的,所以我在 Firefox 中将其缩小为红色 HTML 字体,这是某种错误。如果我将鼠标悬停在它上面,它会显示:No space between attributes

现在我有点困惑,因为 flickr 是一个巨大的网站,而且自从我看到图像后它显然仍然有效。这可能是他们正在进行的某种“反刮擦”吗?我还有办法下载图片吗?

【问题讨论】:

  • 我无法重现您所说的内容。 HTML 源代码没有颜色。这是纯文本。
  • @recursive 抱歉,我应该在询问之前进行更多研究。我刚刚在 IE 和 chrome 中都试过了,文本不是红色的。所以我假设红色只是一种Firefox格式。但是我关于为什么 JSoup 无法识别它的问题仍然存在
  • 这种情况下的 firefox 着色恰好缩小了 JSoup 找不到的范围,所以这要么是巧合,要么是 firefox 有某种基于我不知道的 HTML 格式
  • 我也无法在 Firefox 中重现“红色”html。错误消息表明属性之间没有空格,但您的代码摘录清楚地显示了它们。它可能是一个 unicode 非空格字符吗?对我来说似乎没有什么问题。
  • 警告“属性之间没有空格”是指截图中width之前没有空格。这可能会导致 JSoup 出现问题。

标签: html css firefox jsoup


【解决方案1】:

回答我自己的问题。

我弄错了,JSoup 确实找到了所有img 标签。我不是 100% 确定我的错误在哪里,因为我昨天看到它并从那时起更改了我的代码,但我假设这是我滥用 .select 将排除这些图像(我在这个问题中的代码被简化为了争论)。

我会留下这个问题,因为它可能会帮助其他人在源代码中遇到错误的 HTML,因为 cmets 中有一些有用的提示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多