java爬取人人网数据

来源:互联网 发布:播放器用不了网络 编辑:程序博客网 时间:2024/05/17 08:15

通过httpclient何httpparser两个类爬人人网中得数据,其中的详细步骤以及文档下面详细介绍。



/*
 * 爬人人网相关代码
 * 
 */
@SuppressWarnings("deprecation")
public class RenRen {


//输入用户名及密码
@SuppressWarnings("unused")
private static String userName = "";
@SuppressWarnings("unused")
private static String passWord = "";
//设置爬虫网址
private static String renRenLoginURL = "http://www.renren.com/PLogin.do";
private HttpResponse response;

//创建HttpClient对象
@SuppressWarnings({ })
private DefaultHttpClient httpclient = new DefaultHttpClient();

//输入抓包的参数,及传递的参数
private boolean login(){
HttpPost httpPost = new HttpPost(renRenLoginURL);
//建立一个namevaluepair数组,用于存储传送相关参数
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("domain", "renren.com"));
nvps.add(new BasicNameValuePair("isplogin", "true"));
nvps.add(new BasicNameValuePair("submit", "登陆"));
nvps.add(new BasicNameValuePair("email", "userName"));
nvps.add(new BasicNameValuePair("password", "password"));

try {
//登陆成功,获取返回的数据,及html文件
httpPost.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8));
response = httpclient.execute(httpPost);
} catch (Exception e) {
e.printStackTrace();
return false;
}finally {
httpPost.abort();
}
return true;
}

//获取响应头
private String getRedirectLocation(){
Header locationHeader = response.getFirstHeader("Location");
if (locationHeader == null) {
return null;
}
return locationHeader.getValue();
}

//获取html文本
private String gettext(String redirectLocation){
HttpGet httpget = new HttpGet(redirectLocation);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = "";
try{
responseBody = httpclient.execute(httpget,responseHandler);
}catch(Exception e){
e.printStackTrace();
responseBody = null;
}finally{
httpget.abort();
httpclient.getConnectionManager().shutdown();
}
return responseBody;
}

//如果注册成功了,输入响应的html
public void printText(){
if (login()) {
String redirectLocation = getRedirectLocation();
if (redirectLocation != null) {
System.out.println(gettext(redirectLocation));
}
}
}

//主函数main方法
public static void main(String[] args){
RenRen renRen = new RenRen();
renRen.printText();
}
}

1 0
原创粉丝点击