- 浏览: 1272686 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (608)
- 数据结构 (2)
- AJAX (3)
- 设计模式 (3)
- java (117)
- js (14)
- css (9)
- jsp (10)
- 杂文 (49)
- htmlparser (6)
- 数据库 (29)
- 算法 (14)
- 数据挖掘 (11)
- 电脑杂症 (12)
- 网络爬虫 (7)
- 应用服务器 (9)
- PHP (2)
- C# (14)
- 测试 (3)
- WEB高性能开发 (3)
- swt (1)
- 搜索引擎 (16)
- HttpClient (4)
- Lite (1)
- EXT (1)
- python (1)
- lucene (4)
- sphinx (9)
- Xapian (0)
- linux (44)
- 问题归类 (1)
- Android (6)
- ubuntu (7)
- SEO (18)
- 数学 (0)
- 农业资讯 (12)
- 游戏 (3)
- nginx (1)
- TeamViewer (1)
- swing (1)
- Web前 端 (1)
- 主页 (0)
- 阿萨德发首发身份 (0)
- 软件设计师 (0)
- hibernate (5)
- spring3.0 (5)
- elastic (1)
- SSH (3)
- ff (0)
- oracle 10g (9)
- 神经网络 (1)
- struts2.0 (2)
- maven (1)
- nexus (1)
- 辅助工具 (3)
- Shiro (1)
- 联通项目 (0)
- 2014年专业选择 (0)
- freemarker (1)
- struts1.2 (8)
- adfasdfasfasf (0)
- TortoiseSVN (1)
- jstl (1)
- jquery (1)
- eclipse plugin (0)
- 游戏外挂 (1)
- 推广 (0)
- 按键精灵 (1)
- ibatis3.0 (1)
最新评论
-
水野哲也:
不不不, 这个您真错了!其实是你引用的那个jsp和本身的jsp ...
解析关于jsp页面指令冲突问题contentType="text/html;charset=UTF-8" -
caobo_cb:
import xx.cn.weibo.Util;
[ java版]新浪微博之ruquest_token篇 -
caobo_cb:
你好 Util包没有
[ java版]新浪微博之ruquest_token篇 -
小桔子:
你好!我遇到个问题 max_allowed_packet值总是 ...
mysql查询占用内存,优化的技巧 -
donghustone:
谢谢大神!
用JSmooth制作java jar文件的可执行exe文件教程(图文)
真的很久很久没有写过文章了,唉,惭愧啊!寒暄的说话就不多说了,直入主题。有人问过我,如何制作一些论坛的自动发言机器人?我说,这很简单啊,(如果没
有图片验证码的话!)在Java里,有些URL,URLConnection的类啊,这些类可以访问一个URL获取数据,可以发送Request,你就可
以结合一些类做一个自动发言的了,但用Post发送表单的话,就没有直接的,比较麻烦,如果还要处理Cookie的话,之后我想了想,想到了可以用
Jakarta Commons
下面的开源项目啊,有一个项目名叫“HttpClient”的,这个就是用Java写的Http客户端,可以说是一个简单功能的浏览器吧,只是不能解析
HTML标签,写这个解析可不是易事。既然我们是写个自动访问网站的程序,就不用解析显示HTML啦。朋友说能写个招聘网站的自动刷新简历的程序就好了,
那就用51job为例吧。
首先,你得去下载HttpClient的包。
http://jakarta.apache.org/commons/httpclient
代码不多,我们就先来看看代码吧:
import java.io.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; public class HttpTest { /** * @param args * @throws Exception */ public static void main(String[] args) { //先建立一个客户端实例,将模拟一个浏览器 HttpClient client = new HttpClient(); //这个是URL地址,我经过分析51job网站登录后的跳转到的地址,并分析得它在JavaScript里提交的URL的参数,不同网站就自已分析了,这个就是登录后刷新简历的URL地址 String url = "http://my.51job.com/my/Pop_RefreshResume.php?en=0&ReSumeID=88888888&Read=0&ID=88888888"; //之后再建立一个Post方法请求,提交刷新简历的表单,因为提交的参数较多,所以用Post请求好了 PostMethod method = new PostMethod(url); //下面的就是将要提交的表单的数据填入PostMethod对象里面,以name , value 对加入! method.addParameter("HPNation", "086"); method.addParameter("HPCity","020"); method.addParameter("HPNumber","88888888"); method.addParameter("FPNation","086"); method.addParameter("FPCity","020"); method.addParameter("FPNumber","88888888"); method.addParameter("FPExtension","000"); method.addParameter("MPNation","086"); method.addParameter("Mobile","13888888888"); method.addParameter("EmailAdd","888@888.com"); method.addParameter("ReSumeID","88888888"); //这里是建立请求时服务器需要用到的Cookie。 Cookie cookie = new Cookie(".51job.com","51job","ccry%3D.0%252FZKBaMTmj82%26%7C%26cconfirmkey%3DcpwWgp7FC9FZM%26%7C%26cresumeid%3D88888888%26%7C%26cresumeids88888888d888826%7C8408ilstatus%3D2%26%7C%26cnickname826cenglis8cautologin%3D","/",null,false); //将设置好的Cookie加入模拟的客户端里。当请求发生时,就会将Cookie写进请求头里了 client.getState().addCookie(cookie); int i=0; //开始死循环 while(true){ try{ //这里是要求客户端发送一个请求。直接将PostMethod请求出去。 client.executeMethod(method); //下面是获取返回的结果 InputStream in = method.getResponseBodyAsStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buff = new byte[1024]; int len = -1; while((len=in.read(buff))!=-1){ baos.write(buff, 0, len); } String result = new String(baos.toByteArray()); //释放资源 in.close(); baos.close(); //在51job里,刷新简历成功的话,会返回一些JavaScript代码,里面有个alert()输出“简历已刷新”的信息的,你分析结果,如果有这句话,则成功刷新了。之后就让线程睡眠1分钟后循环刷新! if(result.indexOf("简历已刷新")!=-1){ System.out.println("简历已刷新! " + ++i); }else{ System.out.println("刷新失败!"); } Thread.sleep(60000); }catch(Exception ex){ System.out.println("******** Error! ********"); try{ //出现错误时,再等待20秒后再重新进行刷新。 Thread.sleep(20000); }catch(Exception e){ System.out.println("******** Thread Error! ********"); } } } } }
我们再来看看,其实很简单,我们来说明一下。HttpClient将很多Http协议底层的东西都封装了,这样很方便使用,如果自已用Socket写的 话,还有处理很多信息,Http协议的三次握手等等的操作,很是麻烦。现在用HttpClient就一步到位了。但要注意一下,51job里面的简历刷新 是要先登录后才可以进行的,而熟悉Web开发的人员都知道,登录后服务器就会记录下你的Session,而Session也是基于Cookie的,所以 Session ID是以Cookie的方式记录在客户机的,这样每次请求都要将该Cookie发送到服务器验证,这样才可以保证Web的状态。所以,你可以在浏览器里先 登录一次。之后找出该网站的Cookie文件,将里面的内容复制出来放上上面代码的Cookie类里面。你也可以用这个HttpClient写一个登录的 请求,之后再从ResponseHeader里获取Cookie。至于表单里的信息,就按自已需要填写就行了。就是模拟一个浏览器,将你的简历刷新的表单 模拟出来再发送。
发表评论
-
tomcat was unable to start within 45 seconds
2013-11-11 15:59 837原因一: -
Apache Commons Lang
2013-10-15 12:10 3165ArrayUtils public class Tes ... -
htmlunit form
2013-06-25 11:13 924Form提交 对于WEB应用,有着大量的表单,所以Html ... -
QQ微博登录步骤
2013-05-28 12:14 0QQ微博登录步骤: 1、验证帐号时,会访问一个地址。如下: ... -
jsoup
2013-05-22 23:37 1142import org.jsoup.Jsoup; import ... -
java 加密解密
2013-05-21 23:00 842import java.security.InvalidKey ... -
freemarket 对象应用篇(一)
2013-05-19 18:18 1042freemarket应用. 1.1:创建web工程testF ... -
中文数字转阿拉伯数字
2012-11-30 14:24 1795/** * @author loiy * ... -
标记:伪原创标题思路
2012-01-11 16:34 1287采用填词的办法进行伪 ... -
用JSmooth制作java jar文件的可执行exe文件教程(图文)
2012-01-05 01:09 8181下载完程序之后,运行 jsmoothgen.exe 1.进入“ ... -
多线程 Java.util.ConcurrentModificationException异常
2011-12-29 13:43 1525Iterator<Entry<String,B ... -
java 反序列化 抛出EOFException
2011-12-19 17:21 2253抛出这样的异常,一般情况下,是因为业务逻辑的问题。 如: 在没 ... -
一键安装双击运行——Java安装程序制作
2011-12-09 02:39 1330对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户 ... -
只针对中英文混合分词的中文分词器
2011-12-02 17:28 4871该版本说明 1、只针对中英文混合分词 需要一些中文和英文连在 ... -
Java开源运行分析工具
2011-11-15 15:10 1884FProfiler FProfiler是一个非常快的Java ... -
cwss 按照指定的字符进行切词
2011-11-15 09:37 1211cwss 按照指定的字符进行切词 在 Utility.SEPE ... -
cwss bug 修复
2011-11-07 09:50 889修复的BUG有如下: 1、当只有中文、字母和数字,没有任何其他 ... -
java 怎么读取细胞词库scel
2011-10-24 14:28 3115private void sogou(String pa ... -
今天遇到一个奇怪的问题
2011-04-28 11:55 1186想实现一个用户访问页面,得到用户的外网地址 在公司上。程序是没 ... -
在myeclipse6.5下统一全部JSP编码更改
2011-04-07 14:47 1463在平时我们新建一个JSP页面默认编码是"ISO885 ...
相关推荐
《使用Java制作Slack、Facebook和Twitter机器人的实践探索》 在信息技术日新月异的今天,社交网络已经成为人们日常生活和工作中不可或缺的一部分。为了更好地利用这些平台,开发者们经常需要创建自动化工具,其中就...
以上就是Java JSP环境下制作登录验证码的基本流程,通过这种方式,我们可以为网站添加一道防线,防止未经授权的登录尝试。但要注意,这只是基础级别的验证码,实际应用中可能需要更复杂的验证码,例如滑动验证码、...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
辅助控制机械手的子窗口界面,该文件采用纯代码编写,运行主程序自动启动,也可以单独启动。 kociemba.m 根据魔方颜色识别结果,进行解算,返回还原步骤。该文件通过网络端口调用德国数学家Kociemba的解魔方程序...
在IT领域,爬虫机器人(也称为网络爬虫或网页抓取器)是自动化程序,它们遍历互联网,抓取并存储网页信息。这个“制作你自己的爬虫机器人”综合文档可能包含了一系列步骤和指导,教你如何构建一个基础的网络爬虫。...
验证码是防止恶意自动程序(如机器人)滥用服务的一种安全机制。过滤器则在Servlet处理请求之前和之后进行预处理和后处理,用于实现诸如字符编码转换、权限验证等功能。在这个主题中,我们将深入探讨如何制作Servlet...
这些服务可以通过互联网随时随地访问,并且能够自动更新,无需用户手动维护软件。 2. 会计云平台服务:是一种基于云的服务平台,提供了会计处理的各项功能。用户可以在这个平台上进行账目管理、财务报表制作、凭证...