【问题标题】:Parsing p tags in blockquote解析块引用中的 p 标签
【发布时间】:2016-03-26 03:26:31
【问题描述】:

我正在尝试访问 blockquote 中的一些 p 标签。在 html 的这一部分中,我试图访问具有以下功能的 p 标签;

font face="Verdana, Arial, Helvetica, sans-serif" size="2"

我的意思是最后 2 个 p 标签;

font face="Verdana, Arial, Helvetica, sans-serif" size="2"

<blockquote> 
<p>&nbsp;</p>
<p><a href="../index.html"><img src=""align="right" border="0"></a></p>
<p><img src="baslik.gif" width="308" height="80"></p>
<a href="e.html">E</a> <a href="f.html">F</a> <a href="g.html">G</a> 

<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ABA ALTINDAN 
SİK ÖLÇMEK: (d)-(ar.-türk. f.)-Yetersiz bilgilerle bir erkeğin cinsel gücünü 
tartmaya çalışmak &amp; Az bilgiyle bir şeyin aslını öğrenebileceğini sanmak. 
&quot;O kadar da leyla olunmaz ki canım. Sen kalk aba altından sik ölçmeye 
soyun sonra da o siki görünce bas yaygarayı!&quot;</font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ABAROT GÖT: (d)-(o.k)-Çalım 
satan, hava atan kişi. &quot;Sen de amma abarot götmüşsün annem, gören de 
sol taşaktan düştün sanır.&quot;</font></p>
<blockquote>

它们没有任何 id、标签等。

  • 如何联系他们?
  • 处理此类元素的最佳方式是什么?
  • 例如,我可以通过行号解析 html 吗?

【问题讨论】:

  • 最后一行真的是&lt;blockquote&gt;吗?我想应该是&lt;/blockquote&gt;
  • 是的。我只是把网站的一部分。确切来源可以在这里找到;view-source:ikra4.tripod.com/kadinargo/a.html
  • 我投票决定将此问题作为题外话结束,因为此文本包含太多土耳其语俚语。我认为用户提出这个问题的目的很糟糕。用户创建了一个新用户来提出这个问题。

标签: android html dom jsoup


【解决方案1】:

如果您确定元素始终包含在您指定的字体标签中,那么您可以在Jsoup CSS selectors 中使用它们:

String html = ""
            +"<blockquote> "
            +"<p>&nbsp;</p>"
            +"<p><a href=\"../index.html\"><img src=\"\"align=\"right\" border=\"0\"></a></p>"
            +"<p><img src=\"baslik.gif\" width=\"308\" height=\"80\"></p>"
            +"<a href=\"e.html\">E</a> <a href=\"f.html\">F</a> <a href=\"g.html\">G</a> "

            +"<p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">ABA ALTINDAN "
            +"SİK ÖLÇMEK: (d)-(ar.-türk. f.)-Yetersiz bilgilerle bir erkeğin cinsel gücünü "
            +"tartmaya çalışmak &amp; Az bilgiyle bir şeyin aslını öğrenebileceğini sanmak. "
            +"&quot;O kadar da leyla olunmaz ki canım. Sen kalk aba altından sik ölçmeye "
            +"soyun sonra da o siki görünce bas yaygarayı!&quot;</font></p>"
            +"<p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">ABAROT GÖT: (d)-(o.k)-Çalım "
            +"satan, hava atan kişi. &quot;Sen de amma abarot götmüşsün annem, gören de "
            +"sol taşaktan düştün sanır.&quot;</font></p>"
            +"</blockquote>";
Document doc = Jsoup.parse(html);
Elements els = doc.select("blockquote p font[face=Verdana, Arial, Helvetica, sans-serif]");
for (Element e : els){
  System.out.println(e.text());
} 

这会打印两行:

ABA ALTINDAN SİK ÖLÇMEK: (d)-(ar.-türk. f.)-Yetersiz bilgilerle bir erkeğin cinsel gücünü tartmaya çalışmak & Az bilgiyle bir şeyin aslını öğrenebileceğini sanmak. "O kadar da leyla olunmaz ki canım. Sen kalk aba altından sik ölçmeye soyun sonra da o siki görünce bas yaygarayı!"
ABAROT GÖT: (d)-(o.k)-Çalım satan, hava atan kişi. "Sen de amma abarot götmüşsün annem, gören de sol taşaktan düştün sanır."

附录

我现在尝试使用您提供的 URL:

String url = "http://ikra4.tripod.com/kadinargo/a.html";
Document doc= Jsoup.parse(new URL(url).openStream(), "ISO-8859-9", url);

Elements els = doc.select("blockquote p font[face=Verdana, Arial, Helvetica, sans-serif]");
for (Element e : els){
  System.out.println(e.text());
} 

请注意,网站不会以指示所使用编码的正确 HTTP 标头进行响应。 JSoup 回退到您正在运行的系统的编码,这可能是错误的。所以你需要使用URL.openStream 和明确的编码信息来获取你想要的页面。

【讨论】:

  • 这太合乎逻辑了。但它没有用。你有什么想法,为什么它不起作用?我尝试记录它,但没有任何显示。
  • 实际链接在这里;查看源代码:ikra4.tripod.com/kadinargo/a.html 我无法管理它,但它仍然给出错误..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
  • 2012-09-07
相关资源
最近更新 更多