目前我正在尝试使用Java中的Jsoup库来抓取静态html页面。我找到了一种方法来获得我想要的东西,但我不知道该选择器应该选择什么。之前,我使用的是CSS,但我想要的文本位置对于每个html页面都不一样。
因此我考虑使用这种逻辑,即在特定URL之后出现的文本,因为页面的布局方式是:
-Topic as a link-
Text field containing information related to Topic.
HTML看起来像这样
<A NAME="Topic"></A> <A HREF="#TOPIC LiNK"><H2> TITLE OF TOPIC </H2></A>
<PRE><B leftmargin=150 marginwidth=100\>Content that I want to scrape</B></PRE>
我想在“我要抓的内容”中抓取所有内容。
答案 0 :(得分:2)
根据您的示例,您似乎尝试从<PRE>
之后直接放置<A>
的文本。在这种情况下,您可以使用siblingA + siblingB
,它会尝试在sibling B
之前立即找到sibling A
(您可以在{{3}找到有关选择器和示例的更多信息}和official tutorial)。
所以在你的情况下doc.select("a+pre").text()
就足够了。
您可以添加更多详细信息,例如a[href=#TOPIC LiNK]
等href属性的特定网址,或<A href=...>
也需要<A name=..>
之前的条件
doc.select("a[name] + a + pre")