`
fuyun369
  • 浏览: 31281 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

代码如何实现登陆

阅读更多
使用爬虫拿取开心网(www.kaixin001.com)中好友的ID、名字时需要经过登陆页面
下面是用代码来实现登陆并拿取数据:

package com.kaixin001;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import com.kaixin.commons.Globals;
import com.kaixin.utils.commonshc.UTF8PostMethod;

/**
* 开心网登录
* @author fuyun
*  2009-9-12
*/
public class Kaixin {

// <div class="srr">
// <div class="vafname">
// <div class="r w100 tar">
private static final NodeFilter SRR_DIV_CLASS = new AndFilter(
new TagNameFilter("div"), new HasAttributeFilter("class","srr"));
private static final NodeFilter VAFNAME_DIV_CLASS = new AndFilter(
new TagNameFilter("div"), new HasAttributeFilter("class","vafname"));
private static final NodeFilter TAR_DIV_CLASS = new AndFilter(
new TagNameFilter("div"), new HasAttributeFilter("class","r w100 tar"));
private static final NodeFilter FILTER_A = new TagNameFilter("a");

   static final String LOGON_SITE = " www.kaixin001.com" ;
   static final int     LOGON_PORT = 80;

   public static void main(String[] args) throws Exception{
  
      HttpClient client = new HttpClient();
      client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);
     
        NameValuePair[] parr = new NameValuePair[10];
  parr[0] = new NameValuePair("rcode", "");
  parr[1] = new NameValuePair("url", "/home/");
  parr[2] = new NameValuePair("rpkey", "");
  parr[3] = new NameValuePair("diarykey", "");
  parr[4] = new NameValuePair("invisible_mode", "0");
  parr[5] = new NameValuePair("email", "fuyun369@126.com");
  parr[6] = new NameValuePair("password", "5201314");
  parr[7] = new NameValuePair("code", "");
  parr[8] = new NameValuePair("btn_dl","%B5%C7%C2%BC");
  parr[9] = new NameValuePair("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)"); 
  UTF8PostMethod postMethod = new UTF8PostMethod(" http://www.kaixin001.com/login/login.php");
        postMethod.setRequestHeader("Referer", " http://www.kaixin001.com/login/login.php");
  postMethod.setRequestBody(parr);

  int statusCode = client.executeMethod(postMethod);
  //==========================================================
  System.out.println(statusCode);
  if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
    || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
   // 从头中取出转向的地址
   Header locationHeader = postMethod.getResponseHeader("location");
   String location = null;
   if (locationHeader != null) {
    location = locationHeader.getValue();
    //System.out.println("The page was redirected to:" + location);
   } else {
    System.err.println("Location field value is null.");
   }
         GetMethod get = new GetMethod(" http://www.kaixin001.com/" + location);    
         System.err.println(get);
         client.executeMethod(get);  
         String html = get.getResponseBodyAsString();
         //System.out.println(html);
       
         Parser nodeParser1 = Parser.createParser(html, Globals.CHARSET_UTF8);
         NodeList nodeList1 = nodeParser1.parse(TAR_DIV_CLASS);
         Parser nodeParser2 = Parser.createParser(nodeList1.toHtml(), Globals.CHARSET_UTF8);
         NodeList nodeList2 = nodeParser2.parse(FILTER_A);
         Node aNode3 = nodeList2.elementAt(0);
         String msgUrl = "http://www.kaixin001.com"+aNode3.getText().split("href=")[1].substring(1, 15);
         System.out.println(msgUrl);
        
         GetMethod get1 = new GetMethod(msgUrl);    
         System.err.println(get1);
         client.executeMethod(get1);  
         //String html1 = get1.getResponseBodyAsString();
        // System.out.println("***"+html1);
        
         Parser nodeParser11 = Parser.createParser(html, Globals.CHARSET_UTF8);
         NodeList nodeList11 = nodeParser11.parse(SRR_DIV_CLASS);
         Parser nodeParser22 = Parser.createParser(nodeList11.toHtml(), Globals.CHARSET_UTF8);
         NodeList nodeList22 = nodeParser22.parse(VAFNAME_DIV_CLASS);
         Parser nodeParser33 = Parser.createParser(nodeList22.toHtml(), Globals.CHARSET_UTF8);
         NodeList nodeList33 = nodeParser33.parse(FILTER_A);
         System.out.println(nodeList33.toHtml());
         if(nodeList33 != null && nodeList33.size()>0){
        for(int a=0;a<(nodeList33.size());a++){
Node aNode33 = nodeList33.elementAt(a);
System.out.println("好友名:"+aNode33.toPlainTextString());
String friendId = aNode33.getText().split("uid=")[1].substring(0,;
String friendUrl = "http://www.kaixin001.com/home/"+aNode33.getText().split("uid=")[1].substring(0,;
System.out.println(friendId);
System.out.println(friendUrl);
}
         }  
  }
}  
}

  
  
  
  
  
  
分享到:
评论

相关推荐

    VB登陆界面代码 登录界面

    这三个标签进一步强调了本文的核心主题:如何通过代码实现登录界面。这涉及到UI设计、输入验证、错误处理等多个方面,对于初学者来说,掌握这些基础知识至关重要。 #### 部分内容详解 提供的代码示例是一个典型的...

    纯uniapp代码开发实现登录实例

    创建一个名为"login"的文件夹,其中包含"login.vue",用于实现登录页面的界面和逻辑。在这个页面中,用户输入用户名和密码,然后点击登录按钮触发登录请求。 7. **store** 文件夹: Vuex是Vue的状态管理库,用于...

    js实现简单登录功能的实例代码

    通过本文的介绍,我们了解到使用JavaScript实现登录验证和页面跳转的基本方法。具体技术点包括: - 使用`&lt;form&gt;`标签和`&lt;input&gt;`标签构建登录表单。 - 使用JavaScript函数进行用户名和密码的验证。 - 使用`window....

    SSM框架实现登录注册功能完整代码

    这个"SSM框架实现登录注册功能完整代码"项目,通过IDEA(IntelliJ IDEA)进行整合,提供了从零开始构建登录注册功能的全套源码,包括所需的jar包和配置文件。下面我们将详细探讨SSM框架实现登录注册功能的关键知识点...

    idea+maven+tomcat实现登录案例源代码.zip

    标题中的"idea+maven+tomcat实现登录案例源代码"表明这是一个使用IntelliJ IDEA集成开发环境(IDE),Maven构建工具以及Tomcat服务器来实现的登录功能的示例项目。这个项目的主要目的是通过代码展示如何在Java Web...

    asp.net登录及注册页面代码实现

    ### ASP.NET登录与注册页面代码实现详解 在Web开发领域,用户身份验证是必不可少的一个环节。ASP.NET提供了强大的工具和框架来帮助开发者实现这一功能。本文将深入解析一个基于ASP.NET并通过C#语言实现的登录及注册...

    web实现注册登录功能源代码

    web实现注册登录功能源代码,完整代码教程。适合新开发人员练习使用

    登录 注册 不是XIB的 纯代码 aic

    总之,这个项目提供了一个纯代码实现登录注册功能的示例,对于想要深入学习iOS开发,特别是想掌握UI编程的开发者来说,是一个很好的实践机会。通过这种方式,开发者可以更好地理解iOS界面构建的底层机制,并锻炼自己...

    小程序登录/注册页面设计的实现代码

    本文将详细讲解如何实现小程序的登录/注册页面设计,包括关键的代码实现和功能模块。 首先,界面设计是用户体验的核心。在本案例中,开发者采用了youzan组件库来构建页面,该组件库提供了丰富的UI元素,如icon、...

    SSM框架下实现登录注册的示例代码

    SSM框架下实现登录注册的示例代码 SSM框架下实现登录注册的示例代码是基于SSM框架的登录注册系统的示例代码,主要介绍了SSM框架下实现登录注册的示例代码的详细过程。该示例代码对大家的学习或者工作具有一定的参考...

    新浪微博登录代码实现

    在本文中,我们将深入探讨如何实现新浪微博的代码登录,并理解其背后的原理和技术细节。通过登录微博,我们可以获取必要的Cookie信息,以便在后续的HTTP请求中模拟已登录状态,访问受保护的用户页面。 首先,我们...

    登录界面代码(vs).pdf

    五、代码实现 在设计好数据库和连接数据库后,我们可以开始编写代码了。在本文中,我们使用 C# 语言来编写代码,首先我们需要在 App_Code 文件夹中创建一个名为 UserCon 的类,然后在其中编写代码来验证用户的登录...

    vuejs实现用户登录注册及评论功能代码

    在这个项目中,“vuejs实现用户登录注册及评论功能代码”旨在教你如何利用Vue.js来构建一个完整的用户系统,包括用户登录、注册以及评论功能。 一、用户登录注册模块 在用户登录注册部分,你需要理解以下Vue.js的...

    Android代码-用户注册登录的简单实现.zip

    这个"Android代码-用户注册登录的简单实现.zip"压缩包可能包含了一个简单的示例项目,用于演示如何在Android应用中实现这一功能。 首先,让我们详细探讨一下Android用户注册登录的基本流程和涉及的技术点: 1. **...

    基于C++实现的登录系统项目源码+代码注释(实现日志功能和账号管理功能).zip

    基于C++实现的登录系统项目源码+代码注释(实现日志功能和账号管理功能).zip 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业...

    登陆控件示例(.NET 源代码)

    【.NET 源代码实现登录控件详解】 在.NET框架中,开发人员经常需要创建自定义登录控件以满足特定的应用程序需求。这个“登陆控件示例”提供了源代码,帮助开发者理解如何在C#或VB.NET环境中构建一个功能完备的登录...

    网页 自动登录 源代码 C#实现

    本示例是基于C#编程语言实现的自动登录功能,特别针对校内网的登录场景。下面我们将深入探讨这个话题,了解C#如何实现自动登录,以及涉及到的相关技术点。 首先,自动登录的核心在于存储和处理用户的登录凭证,通常...

    java源代码,实现登录等功能

    java实现简单的登录注册功能,数据存储在一维数组中,实现登录,注册,修改密码,修改信息等功能,可以在讲课中当例子使用。

    jsp实现用户自动登录功能代码源.zip

    本压缩包"jsp实现用户自动登录功能代码源.zip"包含的是一套实现用户自动登录功能的JSP源代码,这对于理解和实践Web应用中的用户认证和会话管理具有重要的学习价值。 在Web应用中,用户自动登录通常涉及到以下几个...

    VC VC++用户登录界面及代码实现

    代码实现的关键部分包括: 1. **初始化对话框**:在 OnInitDialog() 函数中,我们可以设置控件的初始状态,如默认文本或禁用状态。 2. **数据绑定**:在 DoDataExchange() 函数中,使用DDX_Text()和DDV_XXX()函数...

Global site tag (gtag.js) - Google Analytics