JAVA 用代码实现登入QQ空间操作

JAVA 用代码实现登入QQ空间操作,第1张

辽主临轩的分享

分享

java程序模拟qq登录界面的代码

java程序如何实现登录、记住密码、自动登录等功能!

package dyno.swing.beans.qq

import javax.swing.*

import javax.swing.event.MouseInputListener

import org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel

/*import org.jvnet.substance.skin.SubstanceModerateLookAndFeel

import org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel*/

import java.awt.*

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.MouseEvent

import java.io.IOException

import java.io.PrintWriter

import java.net.Socket

import java.net.UnknownHostException

import java.sql.ResultSet

import java.sql.SQLException

import java.util.Scanner

public class QQLogin extends JFrame implements MouseInputListener,ActionListener{

JLabel guanggao,beijing,wenzi,shezhi,zhanghaowb,qq1,dengluzhuangtai

// JTextField zhanghao

JPopupMenu haoma

JComboBox zhanghao

JPasswordField mima

JCheckBox jizhumima,zidongdenglu

JButton denglu,chashamuma

JProgressBar jpb

SimThread activity

Timer activityMonitor

String name,qq

Socket s

public QQLogin()

{

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel")

} catch (ClassNotFoundException e1) {

// TODO 自动生成 catch 块

e1.printStackTrace()

} catch (InstantiationException e1) {

// TODO 自动生成 catch 块

e1.printStackTrace()

} catch (IllegalAccessException e1) {

// TODO 自动生成 catch 块

e1.printStackTrace()

} catch (UnsupportedLookAndFeelException e1) {

// TODO 自动生成 catch 块

e1.printStackTrace()

}

chashamuma = new JButton("查杀木马")

chashamuma.setBounds(240, 155,85, 20)

this.add(chashamuma)

jpb = new JProgressBar()

jpb.setStringPainted(true)

jpb.setBounds(100, 240, 200, 15)

this.add(jpb)

chashamuma.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

jpb.setMaximum(1000)//设置进度栏的最大值

activity=new SimThread(1000)

activity.start()//启动线程

activityMonitor.start()//启动定时器

chashamuma.setEnabled(false)//禁止按钮

}

})

activityMonitor=new Timer(100,new ActionListener(){//每0.5秒执行一次

public void actionPerformed(ActionEvent e){//以下动作将在事件调度线程中运行,十分安全

int current=activity.getCurrent()//得到线程的当前进度

jpb.setValue(current)//更新进度栏的值

if(current==activity.getTarget()){//如果到达目标值

activityMonitor.stop()//终止定时器

chashamuma.setEnabled(true)//激活按钮

}

}

})

dengluzhuangtai = new JLabel(new ImageIcon("zaixianzhuangtai.jpg"))

dengluzhuangtai.setBounds(75, 145, 35, 30)

this.add(dengluzhuangtai)

dengluzhuangtai.addMouseListener(this)

denglu = new JButton("登录")

denglu.setBounds(140, 155, 80, 20)

this.add(denglu)

this.setAlwaysOnTop(true)

zidongdenglu = new JCheckBox("自动登录")

zidongdenglu.setBounds(200, 190, 100, 30)

this.add(zidongdenglu)

jizhumima = new JCheckBox("记住密码")

jizhumima.setBounds(100, 190, 100, 30)

// jizhumima.setBackground(new Color(228, 244, 255))

this.add(jizhumima)

haoma = new JPopupMenu()

/* zhanghao = new JTextField(20)

zhanghao.setBounds(120, 78, 135, 20)

zhanghao.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.WHITE))

zhanghao.setFont(new Font("宋体",Font.PLAIN,13))

this.add(zhanghao)*/

// zhanghaowb = new JLabel(new ImageIcon("2.png"))

// zhanghaowb.setBounds(90, 73, 194, 31)

// jiantou = new JLabel(new ImageIcon("baijiantou.png"))

// jiantou.setBounds(256, 78, 23, 21)

// jiantou.addMouseListener(this)

// this.add(jiantou)

// this.add(zhanghaowb)

chashamuma.addActionListener(this)

mima = new JPasswordField()

mima.setEchoChar('*')

mima.setFont(new Font("宋体",Font.PLAIN,13))

mima.setBounds(100, 113, 150, 20)

this.add(mima)

zhanghao = new JComboBox()

zhanghao.setEditable(true)

zhanghao.setBounds(100, 78, 150, 20)

zhanghao.setFont(new Font("宋体",Font.PLAIN,13))

this.add(zhanghao)

guanggao = new JLabel(new ImageIcon("guanggao.gif"))

guanggao.setBounds(0, 0, 334, 64)

beijing = new JLabel(new ImageIcon("beijing.jpg"))

beijing.setBounds(0, 64, 334, 154)

wenzi = new JLabel(new ImageIcon("wenzi.jpg"))

wenzi.setBounds(30, 75, 50, 100)

denglu.addActionListener(this)

// zhanghaowb.addMouseListener(this)

// zhanghao.addMouseListener(this)

this.add(wenzi)

this.add(beijing)

this.setLayout(null)

this.add(guanggao)

this.setVisible(true)

this.setDefaultCloseOperation(3)

this.setSize(340, 250)

this.setLocationRelativeTo(null)

}

public static void main(String[] args) {

/*JFrame.setDefaultLookAndFeelDecorated(true)

try {

UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel())

UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceOfficeBlue2007LookAndFeel")

} catch (Exception e) {

System.out.println("Substance Raven Graphite failed to initialize")

}

SwingUtilities.invokeLater(new Runnable() {

public void run() {

QQLogin w = new QQLogin()

w.setVisible(true)

}

})*/

new QQLogin()

}

public void mouseClicked(MouseEvent e) {

// TODO 自动生成方法存根

}

public void mouseEntered(MouseEvent e) {

if(e.getSource() == dengluzhuangtai)

{

dengluzhuangtai.setIcon(new ImageIcon("zaixianzhuangtaidian.jpg"))

}

}

public void mouseExited(MouseEvent e) {

if(e.getSource() == dengluzhuangtai)

{

dengluzhuangtai.setIcon(new ImageIcon("zaixianzhuangtai.jpg"))

}

}

public void mousePressed(MouseEvent e) {

// TODO 自动生成方法存根

}

public void mouseReleased(MouseEvent e) {

// TODO 自动生成方法存根

}

public void mouseDragged(MouseEvent e) {

// TODO 自动生成方法存根

}

public void mouseMoved(MouseEvent e) {

// TODO 自动生成方法存根

}

public class liaotianchuangkou

{

}

class SimThread extends Thread{//线程类

private int current//进度栏的当前值

private int target//进度栏的最大值

public SimThread(int t){

current=0

target=t

}

public int getTarget(){

return target

}

public int getCurrent(){

return current

}

public void run(){//线程体

try{

while (current<target &&!interrupted()){//如果进度栏的当前值小于目标值并且线程没有被中断

sleep(10)

current++

if(current == 700)

{

sleep(3000)

}

else if(current == 730)

{

sleep(1000)

}

}

}catch (InterruptedException e){}

}

}

public void actionPerformed(ActionEvent e) {

if(e.getSource() == chashamuma)

{

this.setBounds(300, 300, 340, 300)

}

else if(e.getSource() == denglu)

{

String zh = (String) zhanghao.getSelectedItem()

System.out.println(zhanghao.getSelectedItem())

// System.out.println(zhanghao.getItemAt(0))

char [] str = mima.getPassword()

String mima = String.valueOf(str)

System.out.println(mima)

// Sql login = new Sql()

// if(login.login(zh,mima))

// {

try {

s = new Socket("127.0.0.1",8888)

System.out.println(s)

PrintWriter pw

Scanner sc

pw = new PrintWriter(s.getOutputStream(),true)

sc = new Scanner(s.getInputStream())

String str2 = "login#289872400198724#"+zh+"#289872400198724#"+mima

System.out.println(str2)

pw.println(str2)

String str3 = sc.nextLine()

String yanzheng[] = str3.split("#")

System.out.println(str3)

if(yanzheng[0].equals("true"))

{

System.out.println("登陆成功!")

name = yanzheng[1]

qq = yanzheng[2]

// this.setVisible(false)

// Thread.sleep(5000)

System.out.println("woao"+name)

System.out.println("woai"+qq)

Logined logined = new Logined(name,qq)

this.setVisible(false)

}

else

{

JOptionPane.showMessageDialog(this, "用户名或密码错误!", "用户名或密码错误!", 0)

}

} catch (UnknownHostException e2) {

// TODO 自动生成 catch 块

e2.printStackTrace()

} catch (IOException e2) {

// TODO 自动生成 catch 块

e2.printStackTrace()

}

/*try {

login.rs = login.stat.executeQuery("select * from qquser where username='"+zh+"' and password = '"+mima+"'")

boolean flag = login.rs.next()

if(flag == true)

{

name = login.rs.getString("name")

qq = login.rs.getString("username")

}

else

{

}*/

// } catch (SQLException e1) {

// TODO 自动生成 catch 块

// e1.printStackTrace()

// }

}

else

{

JOptionPane.showMessageDialog(this, "用户名或密码错误", "输入错误", 0)

}

// this.setVisible(false)

//new Logined()

}

}

你直接保存某次登录后的cookie信息设置到请求头里,应该就不用验证了;别模拟手动手动输入账号密码去登录

下图是我用python筛选百度知道有金币问题代码中的登录设置

你说cookie失效,你一次性爬取完呗,我就不行你页面没关闭他也给你失效,而且爬完也用不了多久


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/654445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-23
下一篇2023-07-23

发表评论

登录后才能评论

评论列表(0条)

    保存