package com.zs.action.admin;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.htmlparser.Parser;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class SpiderByJsoup {
public static String marchersTitle(String args) throws InterruptedException {
String regex = "<h\\d[^>]*>";
Pattern p = Pattern.compile(regex);
Matcher match = p.matcher(args);
if (match.find()) {
return match.group();
}
return null;
}
public static List<String> getLinks(String url){
List<String> linkList = new ArrayList<String>();
try{
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("a[href]");
for (Element link : links) {
linkList.add(link.attr("abs:href"));
}
}catch(Exception e){
e.printStackTrace();
}
return linkList;
}
public static void main(String[] args) {
String url = "http://www.chongzuo.gov.cn/Index";
//List<String> linkList = getLinks(url);
//Elements el = doc.select("div.articleTxtContent");
//System.out.println("----------"+el.text());
Document doc;
try {
doc =
Jsoup.connect("http://society.people.com.cn/n/2015/0604/c136657-27104506.html").header("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2").get();
String title = marchersTitle(doc.html()).substring(1,3);
System.out.println(title);
Elements hElements = doc.select(title);
System.out.println("<div style='font-family: Microsoft YaHei;color: #000;font-size: 24px;line-height: 44px;text-align: center'>"+hElements.get(0).text()+"</div>"+"<p style='font-size: 16px; line-height: 30px;'>"+"</p>");
Elements elements =doc.getElementsByTag("div");
int max = elements.get(0).text().length();
int sear = 0;
for (int i = 1; i < elements.size(); i++) {
int len = elements.get(i).text().length();
if(len>max){
sear = i;
max = len;
}
}
Elements segMentElements = elements.get(sear).getElementsByTag("div");
for(Element segMentElement:segMentElements){
if (segMentElement.select("a").size()>1){//过滤不想要的标签.
continue;
}
Elements contentElements = segMentElement.getElementsByTag("p");
for(Element contentElement:contentElements){
if( contentElement.text().length()>0 && contentElement.text().length()<10 ){
continue;
}
System.out.println("<p>"+contentElement.html()+"</p>");
}
}
/*String charset = SpiderByJsoup.getCharset("http://www.chongzuo.gov.cn/front/newOnly?id=13002");
System.out.println("charset----------------"+charset);
Parser parser = Parser.createParser(doc.body().text(),charset);*/
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
public static String getCharset (String siteurl) throws Exception{
URL url = new URL(siteurl);
Document doc = Jsoup.parse(url, 6*1000);
Elements eles = doc.select("meta[http-equiv=Content-Type]");
Iterator<Element> itor = eles.iterator();
while (itor.hasNext())
return SpiderByJsoup.matchCharset(itor.next().toString());
return "gb2312";
}
public static String matchCharset(String content) {
String chs = "gb2312";
Pattern p = Pattern.compile("(?<=charset=)(.+)(?=\")");
Matcher m = p.matcher(content);
if (m.find())
return m.group();
return chs;
}*/
}
分享到:
相关推荐
4. **结合HttpClient和Jsoup抓取网页数据**: - 使用HttpClient发送HTTP请求,获取网页的HTML内容。 - 将HttpClient获取的HTML内容传递给Jsoup的parse方法,得到Document对象。 - 利用Jsoup的CSS选择器和数据提取...
很实用的jsoup抓取网页教程,通过查看此文档,您可以解决你在抓取网页过程中出现的问题
这是一个使用jsoup抓取网页内容的例子,适合从事手机开发的初学者学习
在"Java使用Jsoup抓取网页关键信息"这部分,我们需要了解以下几个知识点: 1. **Jsoup连接与解析网页**:使用Jsoup的`connect()`方法建立HTTP连接,然后通过`get()`或`post()`发送请求获取网页内容。获取到的HTML...
以下是关于如何使用Java+Jsoup抓取网页数据的详细讲解。 首先,你需要了解HTML的基础结构,因为Jsoup的工作原理是解析HTML文档并提供类似于DOM的API来操作这些文档。HTML是由标签组成的树形结构,每个标签都有属性...
**Jsoup:网页数据抓取与JSON转换** ...本教程将深入探讨如何...通过以上步骤,你已经掌握了使用Jsoup抓取网页数据并转化为JSON格式的基本方法。在实际应用中,可以根据需求进行定制和扩展,以满足各种复杂场景的需求。
**Jsoup:网页抓取与解析利器** Jsoup是一个用于处理实际世界HTML的Java库。它提供了非常方便的API,用于提取和操作数据,使用DOM,CSS和微选择器。在本篇中,我们将深入探讨如何使用Jsoup来抓取整个网站,并将其...
本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...
本项目"安卓listview相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar"旨在演示如何结合Jsoup库从新浪新闻网站抓取信息,并通过ListView展示这些信息,同时实现下拉刷新功能,提升用户体验。...
本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...
**jsoup库详解及其在获取网页正文中的应用** 在网页数据抓取和处理领域,`jsoup`是一个非常实用的Java库,它提供了强大的HTML解析和操作功能。jsoup能够帮助开发者有效地解析网页内容,提取关键信息,尤其是网页...
它提供了一种简单易用的API,使得开发者能够方便地抓取网页内容,处理DOM元素,以及执行CSS选择器。在这个"Jsoup抓取一个完整的网站.rar"压缩包中,你将找到一个示例项目,教你如何使用Jsoup配合Java来抓取一个网站...
在这个主题中,我们将深入探讨两个关键概念:Http协议和Jsoup库,它们是实现网页数据抓取的核心工具。 **Http协议** 是互联网上应用最为广泛的一种数据传输协议,全称为超文本传输协议。它定义了客户端(通常是...
在Eclipse中,将项目导入后,直接运行`NewsDown.java`,程序会根据设定的URL列表逐个抓取新闻正文,并可能将结果保存到文件或者数据库中。为了确保程序的稳定性和效率,可能还需要添加异常处理和多线程支持。 总之...
在Android开发中,Jsoup常用于网页数据抓取和页面内容的处理。以下将详细解释如何使用Jsoup来实现这个功能。 首先,我们需要在项目中引入Jsoup库。如果是在Gradle项目中,可以在build.gradle文件中添加依赖: ```...
同时,对于动态加载的内容,可能需要利用Selenium等工具先触发页面的JavaScript执行,然后再用Jsoup抓取。 在提供的"coolook_self"压缩包文件中,可能包含了一个自定义的Jsoup抓取示例。这可能是一个Java项目,其中...
Android App使用Jsoup抓取网页数据显示-附件资源
通过熟练掌握jsoup库,我们可以快速实现对特定网页的定制化抓取,例如在新浪高尔夫频道的例子中,提取新闻信息并进行分析或存档。此外,jsoup还提供了多种高级功能,满足了多样化的网页解析需求,使得开发者可以更...
在这个项目中,我们使用Jsoup配合Java,实现了抓取整个网站的功能,包括其中的图片、CSS样式表和JavaScript文件。通过这样的工具,我们可以对网页进行离线浏览或者备份,甚至进行数据分析。 首先,我们要理解Jsoup...