欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA爬虫实现自动登录淘宝

程序员文章站 2023-11-29 16:02:52
目的 想通过java代码实现淘宝网的自动登录,通过获取设置的登录信息自动填写并提交。目前这个代码是小编测试过的,可以通过,后期不知道淘宝会不会有相应的封堵策略。 代码分...

目的

想通过java代码实现淘宝网的自动登录,通过获取设置的登录信息自动填写并提交。目前这个代码是小编测试过的,可以通过,后期不知道淘宝会不会有相应的封堵策略。

代码分享:

package util;
import org.openqa.selenium.by;
import org.openqa.selenium.webelement;
import org.openqa.selenium.firefox.firefoxdriver;
import org.openqa.selenium.firefox.firefoxoptions;
import org.openqa.selenium.firefox.firefoxprofile;
import java.io.file;
import java.util.random;
public class testcase2 {
  public static void main(string[] args)
  {
    system.setproperty("webdriver.firefox.bin","c:\\program files\\mozilla firefox\\firefox.exe");
    system.setproperty("webdriver.gecko.driver","c:\\users\\18431\\ideaprojects\\seleniumdemo\\bin\\geckodriver.exe");
    firefoxoptions options = new firefoxoptions();
    firefoxprofile profile = new firefoxprofile(new file("c:\\users\\18431\\appdata\\roaming\\mozilla\\firefox\\profiles\\efzu2oem.default"));
    options.setprofile(profile);
    firefoxdriver driver = new firefoxdriver();
    driver.get("https://login.m.taobao.com/login.htm");
    //下面开始完全模拟正常人的操作,所以你会看到很多 sleep 操作
    webelement usernameelement = driver.findelement(by.id("username"));
    //模拟用户点击用户名输入框
    usernameelement.click();
    string username = "18588260144";//你的手机号
    string password = "xxxxxxxxxxx";//你的密码
    random rand = new random();
    try {
      for (int i = 0; i <username.length() ; i++) {
        thread.sleep(rand.nextint(1000));//随机睡眠0-1秒
        //逐个输入单个字符
        usernameelement.sendkeys(""+username.charat(i));
      }
      webelement passwordelement = driver.findelement(by.id("password"));
      passwordelement.click();
      //输入完成用户名后,随机睡眠0-3秒
      thread.sleep(rand.nextint(3000));
      for (int i = 0; i <password.length() ; i++) {
        thread.sleep(rand.nextint(1000));
        passwordelement.sendkeys(""+password.charat(i));
      }
      driver.findelement(by.id("btn-submit")).click();
    } catch (exception e){
      e.printstacktrace();
    }
    try {
      thread.sleep(300000);
    }catch (interruptedexception ie){
      ie.printstacktrace();
    }
    driver.quit();
  }
}

总结

可以看出来,万变不离其宗,再难的模拟登录都是可以完全模拟人类的操作习惯去实现反爬虫的,好吧,全都告诉你了,php 爬虫技术不打算继续写下去了,感觉还是用 php 适合它做的事情比较好,php 写的爬虫段位太低,还是python 和 java 更好些。