因项目需要从某个网站爬取一点数据,故我将爬取记录如下,以后说不定还能用得到呢,废话少说,进入正题:
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。
HttpClient 主页:http://hc.apache.org/httpcomponents-client-dev/index.html
jsoup是一个Java HTML Parser。能够从URL、文件或字符串解析HTML。利用DOM遍历或CSS选择器查找和抽取数据。能够操作HTML元素,属性和文本。能够依据一个白名单过滤用户提交的内容。
jsoup主页:http://jsoup.org/
具体的我就不解释了 自己度娘、谷哥去
要不找个例子先?!
比如就拿www.iteye.com首页来说吧,我想定时抓取iteye首页“精华文章”里面的数据
思路,用代码请求www.iteye.com首页,拿到首页的html代码,解析html代码,获取“精华文章”里面文章的连接地址在此请求该地址,拿下该文章,是吧?!ok,来看处理过程:
先用浏览器打开www.iteye.com,可以用调试工具 firefox装上firebug chrome右击审核元素
以firefox为例:
可以发现“精华文章” 里面文章的全结构是
在id=“page”的div下面的
id=“content”的div下面的
id=“main”的div下面的
class=“left”的div下面的
id=“recommend”的div下面的
ul下面的li下面的a标签
首先用httpClient获取首页html代码 我用的是httpClient4.1.2 jar包见附件 jsoup用的是jsoup-1.6.1.jar
/**
* 根据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源代码
}
}
} catch (Exception e) {
System.out.println("访问【"+url+"】出现异常!");
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}
return html;
}
上面是用httpClient获取html源文件的代码
下面就是对该html页面进行解析 得到我们想要的连接
下面是jsoup处理得到的html源码
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
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);
}
}
}
}
其实jsoup的语法很简单,就是跟jquery一样用“#”取id,用“.”取样式位之后的数据
其实都很简单的,当然,越规范的网页分析起来越容易,要是网页不规范就只好大家多写点代码咯
贴上Jsoup的API:http://jsoup.org/apidocs/
- 大小: 116.7 KB
分享到:
相关推荐
在"网易贵金属"的例子中,你可能需要使用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与Jsoup整合,以便在进行网络请求时获取并解析网页数据。 HttpClient是Apache软件基金会的一个开源项目,提供了全面的HTTP协议支持,包括标准方法(GET、POST等)、连接管理、重定向...
接着用Jsoup解析HTML,筛选出需要的信息,比如图书列表、借阅记录等。 在实际应用中,需要注意以下几点: - **处理重定向**:HttpClient允许我们配置是否跟随重定向,有时服务器在登录成功后会返回302重定向。 - ...
这篇博客“HttpClient Jsoup爬取天气预报”可能讲述了如何结合这两者来获取并解析网页上的天气预报信息。 首先,HttpClient允许开发者发送各种HTTP请求(如GET、POST等)到服务器,并接收响应。在爬虫应用中,通常...
本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...
在这个项目中,开发者使用了Spring、SpringMVC和MyBatis(简称SSM)作为主要的后端框架,结合maven进行项目管理和依赖管理,同时利用httpClient进行网络请求,通过jsoup解析网页内容,实现了对小说数据的抓取和处理...
在爬虫项目中,jsoup是解析网页内容、提取结构化数据的关键工具,它可以高效地抓取和处理网页中的链接、文本、图片等信息。 HtmlParser和htmllexer是两个用于解析HTML的库,它们主要用于低级别的HTML解析。...
该项目是一个使用Java编程语言开发的爬虫程序,它结合了Spring、SpringMVC(SSM)框架、Maven构建工具以及httpClient和jsoup库来抓取和解析网页内容,特别是针对小说网站的数据获取。以下是对这个项目各部分的详细...
在本文中,我们将深入探讨如何利用Jsoup解析HTML,以便获取新闻列表等网页数据。首先,让我们了解Jsoup的基本用法,然后通过实例演示如何从一个HTML页面中提取新闻列表。 1. **Jsoup简介** - Jsoup是由Jonathon ...
HttpClient与JSoup结合使用,可以实现更高级的网页访问和数据获取。 **结合使用JSoup和HTTPClient** 将JSoup与HTTPClient结合,可以创建一个高效且灵活的网页爬虫。首先,HTTPClient负责发起HTTP请求,获取网页的...
首先,HttpClient5是Apache基金会开发的一个HTTP客户端库,它是Java爬虫获取网页内容的基础。HttpClient提供了对HTTP协议的强大支持,包括各种HTTP方法(GET、POST等)、连接管理、重试策略以及请求和响应的处理。...
总结来说,这个项目或教程涉及使用Jsoup解析和抓取网页,用HttpClient下载资源,同时利用Apache Commons库增强功能,提供了一种综合运用Java网络编程技术的实例。在实际开发中,这样的技术可以广泛应用于数据抓取、...
3. 获取网页响应后,用Jsoup解析HTML,提取静态内容,如公司名称、简介等基本信息。 4. 对于动态加载的内容,利用HtmlUnit模拟浏览器行为,执行页面上的JavaScript,确保所有内容都已加载完毕。 5. 使用HtmlUnit的...
将 JSoup 与 HttpClient 结合,我们可以在 HttpClient 获取 HTML 后,用 JSoup 解析和处理数据。这样,我们就能构建一个基本的爬虫,能够从指定网页抓取信息,甚至处理动态加载的内容。 在实际项目中,我们还需要...