JAVA爬蟲實現(xiàn)自動登錄淘寶
目的
想通過JAVA代碼實現(xiàn)淘寶網(wǎng)的自動登錄,通過獲取設(shè)置的登錄信息自動填寫并提交。目前這個代碼是小編測試過的,可以通過,后期不知道淘寶會不會有相應(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");
//下面開始完全模擬正常人的操作,所以你會看到很多 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();
}
}
總結(jié)
可以看出來,萬變不離其宗,再難的模擬登錄都是可以完全模擬人類的操作習(xí)慣去實現(xiàn)反爬蟲的,好吧,全都告訴你了,PHP 爬蟲技術(shù)不打算繼續(xù)寫下去了,感覺還是用 PHP 適合它做的事情比較好,PHP 寫的爬蟲段位太低,還是python 和 java 更好些。
- JavaWeb使用Cookie模擬實現(xiàn)自動登錄功能(不需用戶名和密碼)
- java實現(xiàn)用戶自動登錄
- java驗證用戶是否已經(jīng)登錄 java實現(xiàn)自動登錄
- Java傳入用戶名和密碼并自動提交表單實現(xiàn)登錄到其他系統(tǒng)的實例代碼
- 詳解JavaEE使用過濾器實現(xiàn)登錄(用戶自動登錄 安全登錄 取消自動登錄黑用戶禁止登錄)
- java 驗證用戶是否已經(jīng)登錄與實現(xiàn)自動登錄方法詳解
- Java模擬新浪和騰訊自動登錄并發(fā)送微博
- java web實現(xiàn)自動登錄功能
- JavaWeb開發(fā)使用Cookie創(chuàng)建-獲取-持久化、自動登錄、購物記錄、作用路徑
- java web實現(xiàn)自動登錄
相關(guān)文章
Springboot關(guān)于自定義stater的yml無法提示問題解決方案
這篇文章主要介紹了Springboot關(guān)于自定義stater的yml無法提示問題及解決方案,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
Java9 Stream Collectors新增功能(小結(jié))
這篇文章主要介紹了Java9 Stream Collectors新增功能(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
springboot連接多個數(shù)據(jù)庫的實現(xiàn)方法
有時候一個SpringBoot項目需要同時連接兩個數(shù)據(jù)庫,本文就來介紹一下springboot連接多個數(shù)據(jù)庫的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2024-08-08
SpringBoot配置文件application.properties的使用
這篇文章主要介紹了SpringBoot配置文件application.properties的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java Optional解決空指針異??偨Y(jié)(java 8 功能)
這篇文章主要介紹了Java Optional解決空指針異??偨Y(jié)(java 8 功能),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
SpringBoot Jackson日期格式化統(tǒng)一配置的實現(xiàn)
Spring項目中經(jīng)常需要配置日期時間格式格式,本文主要介紹了SpringBoot Jackson日期格式化統(tǒng)一配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Spring JdbcTemplate實現(xiàn)添加與查詢方法詳解
JdbcTemplate是Spring框架自帶的對JDBC操作的封裝,目的是提供統(tǒng)一的模板方法使對數(shù)據(jù)庫的操作更加方便、友好,效率也不錯,這篇文章主要介紹了Spring?JdbcTemplate執(zhí)行數(shù)據(jù)庫操作,需要的朋友可以參考下2022-11-11

