package jsoup;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
* 利用HttpClient获取html代码,然后使用jsoup对html代码进行解析
* @author Administrator
*
*/
public class JustTest {
public static void main(String[] args) {
String html = getHtmlByUrl("http://www.iteye.com/");
if (html != null && !"".equals(html)) {
Document doc = Jsoup.parse(html);
Elements linksElements = doc
.select("div#page>div#content>div#main>div.left>div#recommend>ul>li>a");
// 以上代码的意思是 找id为“page”的div里面 id为“content”的div里面 id为“main”的div里面
// class为“left”的div里面 id为“recommend”的div里面ul里面li里面a标签
for (Element ele : linksElements) {
String href = ele.attr("href");
String title = ele.text();
System.out.println(href + "," + title);
}
}
}
/**
* 根据URL获得所有的html信息
*
* @param url
* @return
*/
public static String getHtmlByUrl(String url) {
String html = null;
HttpClient httpClient = new DefaultHttpClient();// 创建httpClient对象
HttpGet httpget = new HttpGet(url);// 以get方式请求该URL
try {
HttpResponse responce = httpClient.execute(httpget);// 得到responce对象
int resStatu = responce.getStatusLine().getStatusCode();// 返回码
if (resStatu == HttpStatus.SC_OK) {// 200正常 其他就不对
// 获得相应实体
HttpEntity entity = responce.getEntity();
if (entity != null) {
html = EntityUtils.toString(entity);// 获得html源代码
System.out.println(html);
}
}
} catch (Exception e) {
System.out.println("访问【" + url + "】出现异常!");
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}
return html;
}
}
分享到:
相关推荐
在"网易贵金属"的例子中,你可能需要使用HttpClient发送GET请求到网易贵金属的页面,然后使用Jsoup解析返回的HTML,找到包含贵金属价格、新闻等信息的部分,从而实现数据抓取。实际操作时,可能还需要考虑登录、分页...
例如,如果你想要抓取一个新闻网站的最新文章标题,可以先使用HttpClient发送请求获取网页源码,再用Jsoup解析HTML,找到包含文章标题的元素: ```java CloseableHttpClient httpClient = HttpClients.create...
以下是一个简单的示例,展示如何使用HttpClient获取网页内容,然后用Jsoup解析: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache....
在IT领域,网络爬虫是一种自动化程序,用于从...总之,HttpClient和Jsoup是Java爬虫开发中的两个强大工具,它们结合使用能有效地抓取和解析网页信息。理解它们的工作原理和用法,对于构建高效的网络爬虫至关重要。
首先,HttpClient发送HTTP请求获取网页源代码,然后Jsoup解析这个源代码,从中提取所需的数据。这种方式对于需要登录、处理表单或者需要处理JavaScript动态生成内容的网站尤为有用。 在压缩包中的"jsoup-1.8.1.jar...
以下是一个简单的整合示例,展示了如何使用HttpClient发起HTTP请求,并用Jsoup解析返回的HTML内容: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; ...
接着用Jsoup解析HTML,筛选出需要的信息,比如图书列表、借阅记录等。 在实际应用中,需要注意以下几点: - **处理重定向**:HttpClient允许我们配置是否跟随重定向,有时服务器在登录成功后会返回302重定向。 - ...
这篇博客“HttpClient Jsoup爬取天气预报”可能讲述了如何结合这两者来获取并解析网页上的天气预报信息。 首先,HttpClient允许开发者发送各种HTTP请求(如GET、POST等)到服务器,并接收响应。在爬虫应用中,通常...
在这个项目中,开发者使用了Spring、SpringMVC和MyBatis(简称SSM)作为主要的后端框架,结合maven进行项目管理和依赖管理,同时利用httpClient进行网络请求,通过jsoup解析网页内容,实现了对小说数据的抓取和处理...
在爬虫项目中,jsoup是解析网页内容、提取结构化数据的关键工具,它可以高效地抓取和处理网页中的链接、文本、图片等信息。 HtmlParser和htmllexer是两个用于解析HTML的库,它们主要用于低级别的HTML解析。...
- 解析HTML:利用jsoup解析HTML,提取出需要的数据,如章节链接、标题、内容等。 - 存储数据:将提取到的数据存储到本地文件、数据库或其他持久化介质中。 - 遍历网页:如果网站有多个章节,爬虫会递归地访问每个...
Google的logo,感觉设计的很好,最近看了java的jsoup(html 解析器)把Google的logo全部下载下来,另外,在Google logos页面发现都是英文的,通过利用Google翻译api对logo说明进行翻译,最终把图片信息以及翻译结果...
5. **使用JSoup解析HTML**:将响应体的字符串传递给JSoup的parse方法,得到Document对象。 6. **数据提取**:使用JSoup的select方法通过CSS选择器定位元素,或者使用getElementById、getElementsByTag等方法提取...
本篇文章以"一篇文章精通系列-案例开发-巨细"为主题,详细介绍了如何使用HttpClient5、jsoup、WebMagic以及spider-flow这四个关键工具来构建一个强大的Java爬虫系统。以下是对这些工具和技术的深入解析。 首先,...
在本文中,我们将深入探讨如何利用Jsoup解析HTML,以便获取新闻列表等网页数据。首先,让我们了解Jsoup的基本用法,然后通过实例演示如何从一个HTML页面中提取新闻列表。 1. **Jsoup简介** - Jsoup是由Jonathon ...
总结来说,这个项目或教程涉及使用Jsoup解析和抓取网页,用HttpClient下载资源,同时利用Apache Commons库增强功能,提供了一种综合运用Java网络编程技术的实例。在实际开发中,这样的技术可以广泛应用于数据抓取、...
本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...
JSoup 将网页内容解析为一个复杂的 DOM 树结构,使得开发者可以通过 CSS 选择器或者直接的节点遍历来查找、提取和修改数据。 例如,要从一个网页中抓取所有的段落(`<p>` 标签),你可以使用以下 JSoup 代码: ```...