新手求助,我用Jsoup获取到了网页中的URL,我要怎样利用呢?

bianweiall 2011-08-16 02:25:17
如下所示,我已经获取到了Html中的URL地址,现在我想打开这些URL来获取打开网页中的信息,我该怎么办呢?

望热心网友能帮帮我!


package caiji;

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Jsoup01 {

public static void main(String[] args) {

String getUrl = "http://www.epzw.com/files/article/topmonthvisit/0/1.htm";
String g1 = ".grid > tbody > tr > td > strong > a";
String g2 = "abs:href";
try {
Document doc = Jsoup.connect(getUrl).timeout(60000).get();
Elements links = doc.select(g1);
for (Element link : links) {
String bookURL = link.attr(g2);
String bookTitle=link.text();
System.out.println(bookURL+" "+bookTitle);
}
} catch (IOException e) {
e.printStackTrace();
}
}

}


...全文
411 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianweiall 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 softroad 的回复:]

赶快结贴散分,多追加点分
[/Quote]

老大,像下面的要怎么获得呢?

我想获得:网游小说, 蝴蝶蓝,连载中,131759这一类信息,我不知道怎样写规则

http://www.epzw.com/bookinfo/43/43866.htm

<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr align="center">
<td colspan="4"><h3>全职高手全文下载</h3></td>
</tr>
<tr>
<td width="25%">类    别:网游小说</td>

<td width="25%">作    者:蝴蝶蓝</td>
<td width="25%">文章状态:连载中</td>
<td width="25%">全文长度:1433287字</td>
</tr>
<tr>
<td>阅 读 数:131759</td>

<td>推 荐 数:8069</td>
<td>收 藏 数:1435</td>
<td> </td>
</tr>
</table></td>
</tr>
huntor 2011-08-18
  • 打赏
  • 举报
回复
Elements elements = doc.select("div#content > table:eq(0) > tr:eq(0) > td:eq(0) > table:eq(0) > tr:eq(1) > td:lt(4)");

for(Element e : elements){
System.out.println(e.text());
}

类    别:网游小说
作    者:蝴蝶蓝
文章状态:连载中
全文长度:1433287字

好好看看这页 http://jsoup.org/cookbook/extracting-data/selector-syntax
bianweiall 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 luohuijun619 的回复:]

这种可以用正则了,过滤下
[/Quote]

我用的是Jsoup,正则我还没研究过,还不会!
luohuijun619 2011-08-18
  • 打赏
  • 举报
回复
这种可以用正则了,过滤下
softroad 2011-08-16
  • 打赏
  • 举报
回复
赶快结贴散分,多追加点分
huntor 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bianweiall 的回复:]

通过现在获取到的URL列表,现在我想分别打开每个URL地址并获取里面的内容,代码我要怎么写呢?
[/Quote]

jsoup cookbook #4 从URL 载入 Document
Document doc = Jsoup.connect("http://example.com/").get();

huntor 2011-08-16
  • 打赏
  • 举报
回复
继续用 jsoup 处理得到的 url。
看完 jsoup 网站的 cookbook 还有什么不会的
bianweiall 2011-08-16
  • 打赏
  • 举报
回复
通过现在获取到的URL列表,现在我想分别打开每个URL地址并获取里面的内容,代码我要怎么写呢?
bianweiall 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 softroad 的回复:]

类似这样

Java code

Elements mapLabel = doc.select("B:matchesOwn(MPN)");
Elements a = doc.select("A:matchesOwn(Substitute)");
Elements b = doc.select("B:matchesOwn(Name)");
Element ……
[/Quote]

老大,你推荐的Jsoup很好用,我昨天学习了一天,现在可以获取一篇网页里想要的东西了!多谢啊!

现在我通过上面的代码已经获取到一列URL地址了,现在想利用这一列地址要怎么办,我JAVA还不太懂!
softroad 2011-08-16
  • 打赏
  • 举报
回复
:lt(n) 例如 td:lt(3) 表示 小于三列
:gt(n) div p:gt(2) 表示 div 中包含 2 个以上的 p
:eq(n) form input:eq(1) 表示只包含一个 input 的表单
:has(seletor) div:has(p) 表示包含了 p 元素的 div
:not(selector) div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表
:contains(text) 包含某文本的元素,不区分大小写,例如 p:contains(oschina)
:containsOwn(text) 文本信息完全等于指定条件的过滤
:matches(regex) 使用正则表达式进行文本过滤:div:matches((?i)login)
:matchesOwn(regex) 使用正则表达式找到自身的文本
softroad 2011-08-16
  • 打赏
  • 举报
回复
# jsoup 官方网站:http://jsoup.org/

# 开源中国社区上 jsoup 的一些代码片段:http://www.oschina.net/code/list_by_project?id=12689
softroad 2011-08-16
  • 打赏
  • 举报
回复
类似这样


Elements mapLabel = doc.select("B:matchesOwn(MPN)");
Elements a = doc.select("A:matchesOwn(Substitute)");
Elements b = doc.select("B:matchesOwn(Name)");
Element td = b.size() > 0 ? b.get(0).parent() : null;
td = td == null ? null : td.nextElementSibling();
parent.setMaterName(td == null ? "" : getText(td));

Elements tds = doc.select("td:matchesOwn(Risk_Grade)");
td = tds.size() > 0 ? tds.get(0).nextElementSibling() : null;
parent.setRiskGrade(td == null ? "" : getText(td));

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧