JAVA爬蟲(chóng)實(shí)現(xiàn)自動(dòng)登錄淘寶
目的
想通過(guò)JAVA代碼實(shí)現(xiàn)淘寶網(wǎng)的自動(dòng)登錄,通過(guò)獲取設(shè)置的登錄信息自動(dòng)填寫(xiě)并提交。目前這個(gè)代碼是小編測(cè)試過(guò)的,可以通過(guò),后期不知道淘寶會(huì)不會(huì)有相應(yīng)的封堵策略。
代碼分享:
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");
//下面開(kāi)始完全模擬正常人的操作,所以你會(huì)看到很多 sleep 操作
WebElement usernameElement = driver.findElement(By.id("username"));
//模擬用戶點(diǎn)擊用戶名輸入框
usernameElement.click();
String username = "18588260144";//你的手機(jī)號(hào)
String password = "xxxxxxxxxxx";//你的密碼
Random rand = new Random();
try {
for (int i = 0; i <username.length() ; i++) {
Thread.sleep(rand.nextInt(1000));//隨機(jī)睡眠0-1秒
//逐個(gè)輸入單個(gè)字符
usernameElement.sendKeys(""+username.charAt(i));
}
WebElement passwordElement = driver.findElement(By.id("password"));
passwordElement.click();
//輸入完成用戶名后,隨機(jī)睡眠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();
}
}
總結(jié)
可以看出來(lái),萬(wàn)變不離其宗,再難的模擬登錄都是可以完全模擬人類(lèi)的操作習(xí)慣去實(shí)現(xiàn)反爬蟲(chóng)的,好吧,全都告訴你了,PHP 爬蟲(chóng)技術(shù)不打算繼續(xù)寫(xiě)下去了,感覺(jué)還是用 PHP 適合它做的事情比較好,PHP 寫(xiě)的爬蟲(chóng)段位太低,還是python 和 java 更好些。
- JavaWeb使用Cookie模擬實(shí)現(xiàn)自動(dòng)登錄功能(不需用戶名和密碼)
- java實(shí)現(xiàn)用戶自動(dòng)登錄
- java驗(yàn)證用戶是否已經(jīng)登錄 java實(shí)現(xiàn)自動(dòng)登錄
- Java傳入用戶名和密碼并自動(dòng)提交表單實(shí)現(xiàn)登錄到其他系統(tǒng)的實(shí)例代碼
- 詳解JavaEE使用過(guò)濾器實(shí)現(xiàn)登錄(用戶自動(dòng)登錄 安全登錄 取消自動(dòng)登錄黑用戶禁止登錄)
- java 驗(yàn)證用戶是否已經(jīng)登錄與實(shí)現(xiàn)自動(dòng)登錄方法詳解
- Java模擬新浪和騰訊自動(dòng)登錄并發(fā)送微博
- java web實(shí)現(xiàn)自動(dòng)登錄功能
- JavaWeb開(kāi)發(fā)使用Cookie創(chuàng)建-獲取-持久化、自動(dòng)登錄、購(gòu)物記錄、作用路徑
- java web實(shí)現(xiàn)自動(dòng)登錄
相關(guān)文章
一文帶你詳細(xì)認(rèn)識(shí)文件與Java中操作文件
文件處理是任何應(yīng)用程序的重要部分,Java 提供了許多用于創(chuàng)建、讀取、更新和刪除文件的方法,這篇文章主要給大家介紹了關(guān)于認(rèn)識(shí)文件與Java中操作文件的相關(guān)資料,需要的朋友可以參考下2024-05-05
spring boot使用thymeleaf為模板的基本步驟介紹
Spring Boot項(xiàng)目的默認(rèn)模板引擎是Thymeleaf,這沒(méi)什么好說(shuō)的,個(gè)人覺(jué)得也非常好,下面這篇文章主要給大家介紹了關(guān)于spring boot使用thymeleaf為模板的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
全面詳解java代碼重構(gòu)與設(shè)計(jì)模式
這篇文章主要為大家介紹了全面詳解java代碼重構(gòu)與設(shè)計(jì)模式的全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Java版超大整數(shù)階乘算法代碼詳解-10,0000級(jí)
這篇文章主要介紹了Java版超大整數(shù)階乘算法代碼詳解-10,0000級(jí),具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
spring+html5實(shí)現(xiàn)安全傳輸隨機(jī)數(shù)字密碼鍵盤(pán)
這篇文章主要為大家詳細(xì)介紹了spring html5實(shí)現(xiàn)安全傳輸隨機(jī)數(shù)字密碼鍵盤(pán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
詳解Spring AOP自定義可重復(fù)注解沒(méi)有生效問(wèn)題
本文主要介紹了Spring AOP自定義可重復(fù)注解沒(méi)有生效問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Mybatis-plus中的@EnumValue注解使用詳解
這篇文章主要介紹了Mybatis-plus中的@EnumValue注解使用詳解,在PO類(lèi)中,如果我們直接使用枚舉類(lèi)型去映射數(shù)據(jù)庫(kù)的對(duì)應(yīng)字段保存時(shí),往往就會(huì)因?yàn)轭?lèi)型不匹配導(dǎo)致映射失敗,Mybatis-plus提供了一種解決辦法,就是使用@EnumValue注解,需要的朋友可以參考下2024-02-02
利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由示例代碼
Spring Cloud Zuul路由是微服務(wù)架構(gòu)的不可或缺的一部分,提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。下面這篇文章主要給大家介紹了關(guān)于利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09
SpringSecurity中的UserDetails和UserDetailsService接口詳解
這篇文章主要介紹了SpringSecurity中的UserDetails和UserDetailsService接口詳解,UserDetailsService 在 Spring Security 中主要承擔(dān)查詢系統(tǒng)內(nèi)用戶、驗(yàn)證密碼、封裝用戶信息和角色權(quán)限,需要的朋友可以參考下2023-11-11

