我试图从网站上抓取一些内容。我用了$result = (array)$arr['country_id'];
echo $result[0];
。我试过了,
JSoup
List<String> songs = new ArrayList<String>();
for (Element s : doc.select("#core")) {
System.out.println(s.html());
songs.add(s.text());
}
for (String chord : songs) {
System.out.println(chord);
}
是#core
标记。在这个<pre>
标记中,我有一个像下面这样的div,
<pre>
当我废弃此内容时,Intro: <u>G</u> - <u>Em</u> - <u>C</u> - <u>D</u>
<u>G</u>
Would you dance,
<u>Em</u>
If I asked you to dance?
<u>C</u>
Would you run,
<u>D</u>
And never look back?
<u>G</u>
Would you cry,
<u>Em</u>
If you saw me crying?
<u>C</u> <u>D</u> <u>G</u>
Would you save my soul tonight?
<div id="part1">
<div class="inner">
<u>G</u>
<u>D</u>
<u>C</u> I can be your hero baby
<u>G</u>
<u>D</u>
<u>C</u> I can kiss away the pain
<u>G</u>
<u>D</u>
<u>C</u> I will stand by you forever
<u>G</u>
<u>D</u>
<u>C</u> You can take my breath away
</div>
</div>
未在Jsoup
中保持正确的格式。有没有办法获得div
标记内容?
答案 0 :(得分:1)
如果你想在不解析内容的情况下抓取内容,那么你可以做这样的事情
Connection.Response response = Jsoup.connect("URL_HERE").execute();
System.out.println(response.body()); //This will keep the format as it is from the server.
如果您想在此之后解析内容,请执行此操作
response.parse();
如果要删除某些元素,则必须解析内容。但是如果你解析它,那么那里的任何格式都将丢失。
解决方法是转义要保留空格的元素。从Jsoup https://stackoverflow.com/a/5830454/1138559的作者那里看看
虽然你必须逃避<pre>
的内容,因为它也包含html元素。