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