今天下午闲来无事,就在iteye上泡着,看到了一篇关于用httpclient获取手机号归属地的一片博客。想到我正好需要一些职位名称,于是动手自己写了一个小程序来获取自己想要的数据。代码如下:
public static void main(String[] args) {
String url = "http://sou.zhaopin.com/jobtypelist.html";
getHttpClient(url);
}
private static void getHttpClient(String url) {
//构造HttpClient的实例
HttpClient httpClient = new HttpClient();
//创建GET方法的实例
GetMethod getMethod = new GetMethod(url);
//使用系统提供的默认的恢复策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
try {
//执行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "
+ getMethod.getStatusLine());
}
//读取内容
byte[] responseBody = getMethod.getResponseBody();
//处理内容
parseHTML(new String(responseBody));
} catch (HttpException e) {
//发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
} catch (IOException e) {
//发生网络异常
e.printStackTrace();
} finally {
//释放连接
getMethod.releaseConnection();
}
}
private static void saveFile(String txt){
String filePath = "F:/category.txt";
BufferedWriter out = null;
if(txt != null){
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath,true),"UTF-8"));
//一行一行的写入
out.write(txt + "\t\n");
out.flush();
}catch(Exception e){
e.printStackTrace();
} finally {
if (out != null)
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private static void parseHTML(String content){
Document doc = Jsoup.parse(content);
Elements categories = doc.select("li a");
for(int i=0; i<categories.size();i++){
String txt = categories.get(i).text();
saveFile(txt);
}
}
通过httpclient获得到页面的源代码之后,用Jsoup来解析html(这个是临时在网上查到的,不太会用),最后将数据保存到了文本中。
遇到的问题:
1.解析html,以前没有解析过,Jsoup也是临阵磨枪,得到了自己想要的结果还不错,下来再研究一下。
2.写入文件的时候,不能一行一行的写,没有想到用换行符,百度了一下。
分享到:
相关推荐
在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...
在本文中,我们将深入探讨HttpClient的基本用法,以及如何使用它来抓取网页内容。 首先,你需要在项目中引入HttpClient的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....
本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...
使用HttpClient抓取网页数据的基本步骤如下: 1. **创建HttpClient对象**:首先,你需要创建一个HttpClient实例,这通常是通过`HttpClientBuilder`或`HttpClients`类完成的。 2. **构建HttpGet请求**:对于简单的...
总之,HttpClient和Jsoup是Java开发者进行网页数据抓取的强大工具。HttpClient提供可靠的HTTP通信,而Jsoup则简化了HTML解析和数据提取的过程。结合两者,你可以高效地从各种网页中获取你需要的信息。在实际项目中,...
Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)
博文链接提供的源码可能展示了如何利用HttpClient库构造请求,发送登录数据,处理响应,以及如何解析返回的HTML内容来处理登录过程。 综上所述,HttpClient是一个强大的工具,可以用于登录163邮箱或其他需要HTTP...
- HttpClient常用于网页抓取,配合HTML解析库(如Jsoup)可以提取网页数据。 - 在自动化测试中,模拟用户请求以验证服务器端功能。 在实际使用中,HttpClient的灵活性和强大功能使其成为Java开发者的首选HTTP...
Java网页抓取数据是互联网数据挖掘的一个重要领域,它允许开发者通过编程方式获取网页上的信息,从而实现自动化分析、监控或构建智能应用。在Java中,我们通常使用HTTP客户端库和HTML解析工具来实现这一目标。本文将...
Java网页抓取数据是互联网开发中的一个重要技能,它允许开发者从网页中提取所需的信息,如新闻、产品数据或用户评论,以供进一步分析或利用。本主题主要涵盖以下几个关键知识点: 1. **网络请求库**:在Java中,...
在这个案例中,`httpclient`和`htmlparser`的结合使得我们可以高效地抓取和解析网页内容。需要注意的是,在实际爬虫项目中,还需要考虑异常处理、请求速率控制、反爬策略等问题,以确保爬虫的稳定性和效率。此外,...
本项目以“C# 多线程抓取数据(酒店)”为主题,聚焦于利用C#语言实现多线程来高效地从艺龙酒店网站获取数据。下面将详细介绍相关知识点: 1. **C#多线程**:C#提供了多种方式创建和管理线程,包括`System.Threading....
在Web开发和数据抓取领域,Java爬虫技术是实现网页自动化信息提取的重要手段。本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据...
在本文中,我们将深入探讨如何使用C#语言来抓取网页数据,特别是在彩票数据查询方面的应用。C#是一种广泛用于开发Windows应用程序、Web服务以及游戏的面向对象的编程语言,其丰富的类库和强大的功能使其成为数据抓取...
在实际应用中,HttpClient可以用于获取API数据、网页抓取、自动化测试等多种场景。为了确保数据安全,可能还需要处理HTTPS连接,验证服务器证书,或者使用HTTP基本认证、OAuth等身份验证机制。 总之,HttpClient是...
HttpClient 绕过登录验证码直接抓取内部数据 HttpClient 的 Cookie 处理机制 在 web 安全中,Cookie 是一个非常重要的概念。它是服务器端用于标识用户身份的机制,通过 Cookie,服务器可以记住用户的登录信息,...
本教程将重点关注如何利用Asp.NET进行数据抓取并生成静态页面,这在提升网站性能、减轻服务器负担以及搜索引擎优化(SEO)等方面具有显著优势。 首先,我们来理解“数据抓取”这一概念。数据抓取是指从互联网上的...
一旦我们有了HtmlDocument对象,就可以通过它的API来查询和抓取数据。例如,如果我们想抓取网页中的所有链接,可以这样做: ```csharp public List<string> ExtractLinks(HtmlDocument doc) { var links = new ...
在抓取数据的过程中,我们还需要处理可能出现的反爬虫策略,比如验证码、IP限制、User-Agent检测等。有时,我们需要设置合适的User-Agent字符串,或者使用代理IP来绕过这些限制。 此外,为了确保爬虫的可扩展性和...