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

模拟登录

 
阅读更多

public class QQ {
  public static final String QQNUM = "1985063628"; // QQ行号码
  public static final String PASSWORD = "JDCZ1gsdps"; // 密码

  private static DefaultHttpClient httpclient = new DefaultHttpClient();
  private static boolean loginFlag = false;
  private static List<Cookie> cookies;
  private static HttpResponse response;
  private static HttpGet request;
  private static String verifyString;
  private static String verifySession;

  private static void getVerifyImage() throws Exception {
   String url = "http://ptlogin2.qq.com/getimage?aid=8000108&0.7022592303274631";
   HttpGet httpget = new HttpGet(url);
   httpget.addHeader("Cookie", "");
   httpget.setHeader("Accept", "text/html, */*");
   httpget
     .addHeader("User-Agent",
       "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727)");
   // httpget.addHeader("Connection", "close");
   // httpget.setHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT
   // 5.1; zh-CN; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20")
   response = httpclient.execute(httpget);

   Header[] headers = response.getHeaders("Set-Cookie");// .getAllHeaders();

   for (Header h : headers) {
    System.out.println(h);
   }
   verifySession = headers[0].getValue().split(";|=")[1];

   InputStream in = response.getEntity().getContent();
   File verifyFile = new File(QQ.class.getResource("output").getPath()
     + "/verifycode.jpg");
   FileOutputStream out = new FileOutputStream(verifyFile);
   byte[] buf = new byte[1024];
   while (in.read(buf) != -1) {
    out.write(buf);
   }
   out.flush();
   System.out.println("验证码图片已生成。路径:" + verifyFile.getCanonicalPath());
   System.out.println("请输入验证码:");
   verifyString = new BufferedReader(new InputStreamReader(System.in))
     .readLine();
   while (verifyString.length() != 4) {
    System.out.println("验证码长度有误,请输入4位验证码:");
    verifyString = new BufferedReader(new InputStreamReader(System.in))
      .readLine();
   }
  }

  public static void doLogin() throws Exception {
   if (!loginFlag) {
    getVerifyImage();
    HttpPost httpost = new HttpPost("http://ptlogin2.qq.com/login");

    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("u", QQNUM));
    nvps.add(new BasicNameValuePair("p", MD5Security.md5(MD5Security.md5_3(PASSWORD)
      + verifyString.toUpperCase())));

    nvps.add(new BasicNameValuePair("verifycode", verifyString));
    nvps.add(new BasicNameValuePair("aid", "8000108"));
    nvps.add(new BasicNameValuePair("u1",
      "http://imgcache.qq.com/qzone/v5/loginsucc.html"));
    nvps.add(new BasicNameValuePair("fp", "loginerroralert"));
    nvps.add(new BasicNameValuePair("h", "1"));
    nvps.add(new BasicNameValuePair("ptredirect", "0"));
    nvps.add(new BasicNameValuePair("ptlang", "0"));
    nvps.add(new BasicNameValuePair("from_ui", "1"));
    nvps.add(new BasicNameValuePair("dumy", "1"));

    httpost
      .setHeader("User-Agent",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727)");
    httpost.setHeader("Cookie", "verifysession=" + verifySession + ";");
    httpost
      .setHeader(
        "Referer",
        "http://ui.ptlogin2.qq.com/cgi-bin/login?link_target=blank&target=self&appid=8000108&qlogin_jumpname=vipmyqq&f_url=loginerroralert&qlogin_auto_login=1&s_url=http%3A//imgcache.qq.com/qzone/v5/loginsucc.html&qlogin_param=jump_url%3D");
    httpost.setHeader("Accept", "text/html, */*");
    httpost.removeHeaders("Cookie2");
    httpost.removeHeaders("Expect");
    httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
    response = httpclient.execute(httpost);

    cookies = httpclient.getCookieStore().getCookies();
    if (cookies.size() < 3) {
     System.err.println("登录失败...");
     loginFlag = false;
    } else {
     System.out.println("登录成功...");
     for (Cookie c : cookies) {
      System.out.println(c);
     }
     loginFlag = true;
    }
   }

  }

  public static void main(String[] args) throws Exception {
   doLogin();
  }

分享到:
评论

相关推荐

    C#模拟登录_输入账号密码模拟登录

    在本文中,我们将深入探讨如何使用C#编程语言来实现模拟登录的功能,特别是在Windows Forms(Winform)环境中进行可视化编程。模拟登录通常涉及到自动化过程,它允许程序通过模拟用户输入来登录网站或应用程序,这...

    java 模拟登录(含验证码)

    在IT行业中,模拟登录是一项常见的任务,特别是在自动化测试、数据抓取或数据分析等领域。Java作为广泛应用的编程语言,提供了丰富的库来实现这一功能。本文将详细介绍如何使用Java进行模拟登录,特别是结合OCR技术...

    java httpclient 模拟登录

    在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...

    C#网站模拟登录器|带验证码模拟登录源代码

    【C#网站模拟登录器与验证码处理技术】 在IT领域,模拟登录是一种常见的自动化测试或数据抓取技术,主要用于测试网站的功能或者获取特定网站的数据。本项目提供的"C#网站模拟登录器"是一个用C#语言编写的程序,它...

    python爬虫之天眼查模拟登录.zip

    代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~天眼查模拟登录天眼查模拟登录是指通过爬虫脚本模拟用户在天眼查网站上进行登录,以方便执行需要登录权限的操作,如查看更...

    httpUnit的应用模拟登录一个网站

    在IT行业中,模拟登录网站是一项常见的任务,特别是在自动化测试、数据抓取或API接口测试等领域。`HttpUnit` 是一个非常实用的Java库,它允许开发者无须浏览器就能执行客户端的HTTP请求,非常适合用于模拟用户行为,...

    Java模拟登录百度Demo

    在IT行业中,模拟登录是一项常见的任务,特别是在自动化测试、数据抓取或数据分析等场景下。本项目名为"Java模拟登录百度Demo",旨在通过Java编程语言实现对百度网站的自动登录功能。在这个教程中,我们将深入探讨...

    HttpClient模拟登录实例

    在本实例中,我们将探讨如何使用HttpClient库来模拟登录网站,获取用户信息,以及处理带有验证码的登录场景。 首先,我们需要理解HttpClient的基本使用。HttpClient的核心类包括HttpClient本身,HttpGet、HttpPost...

    腾讯微博模拟登录示例

    在IT行业中,模拟登录是一项常见的任务,特别是在网络爬虫或者自动化测试中。腾讯微博作为曾经流行的社交媒体平台,其模拟登录的实现对开发者来说具有一定的学习价值。本示例旨在教你如何通过编程方式模拟用户登录...

    QQ模拟登录Qzone,自动赞说说

    QQ模拟登录Qzone并自动赞说说涉及到的技术主要包括网络编程、身份验证以及自动化脚本编写。下面将详细解析这些知识点: 1. **网络编程**:QQ空间登录是通过网络发送HTTP或HTTPS请求到腾讯服务器完成的。理解HTTP...

    C#模拟登录(含验证码)

    在IT领域,模拟登录是一种常见的自动化任务,常用于测试、数据抓取或自动化运维场景。C#作为.NET框架的主要编程语言,提供了丰富的库和工具来实现这样的功能。本项目"**C#模拟登录(含验证码)**"正是针对这一需求而...

    jQuery和mock模拟登录.zip

    在本项目"jQuery和mock模拟登录.zip"中,我们聚焦于前端开发中的一个重要环节——登录功能的实现。这个压缩包提供了完整的源代码,包括HTML、CSS、JavaScript以及mock.js文件,便于开发者进行实战演练。接下来,我们...

    模拟登录源代码

    在编程领域,模拟登录是一种常见的技术,主要用于自动化测试、数据抓取或个人项目中,以自动填写和提交网站登录表单。本项目提供了一个简单的模拟登录的源代码,旨在帮助初学者理解这一过程。以下是对这个项目的详细...

    python模拟登录带验证码的网站demo

    python使用requests模拟登录带验证码的专利网站demo

    企业微信模拟登录,自动安装内部应用.zip

    企业微信模拟登录与自动安装内部应用是现代企业自动化办公中常见的需求,这涉及到API接口调用、自动化测试和脚本编程等多个技术领域。在本文中,我们将深入探讨如何实现这一功能,以及它背后的关键知识点。 首先,...

    SteamLoginSteam平台的模拟登录

    在本案例中,我们关注的是“SteamLogin”,一个针对Steam平台进行模拟登录的项目。Steam是一个全球知名的数字发行平台,提供了游戏购买、下载以及社区交流等功能。Python是实现Web爬虫的常用编程语言,因其丰富的库...

    【Android+OkHttp3+Jsoup】 模拟登录教务系统 抓取课表和成绩

    这个项目就是基于Android Studio,使用OkHttp3和Jsoup库来实现模拟登录并抓取网页数据的示例。以下是对这个项目及其关键技术的详细解析: 1. **OkHttp3**:OkHttp是一个高效的HTTP客户端,它提供了异步和同步请求...

    C#模拟登录蜘蛛抓取.zip

    而当遇到需要登录才能访问的网站时,我们通常需要模拟登录来获取数据。本项目"**C#模拟登录蜘蛛抓取.zip**"即展示了如何在C#环境中实现这个功能。主要涉及的技术点包括`CookieContainer`和`stream`,这两个概念是...

    iCloud模拟登录获取位置信息

    本主题聚焦于“iCloud模拟登录获取位置信息”,这涉及到网络通信、JSON数据解析以及iOS设备的管理。 首先,我们要理解iCloud的登录过程。通常,用户通过Apple ID和密码进行身份验证。模拟登录意味着我们需要用编程...

    selenium模拟登录新浪微博.

    本教程将详细讲解如何利用 Selenium 模拟登录新浪微博,包括必要的环境配置、关键代码实现以及可能遇到的问题。 首先,我们需要准备的工具有:Python 编程语言、Selenium 库、WebDriver(火狐驱动或 PhantomJS 驱动...

Global site tag (gtag.js) - Google Analytics