目的
想通過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 更好些。
新聞熱點
疑難解答
圖片精選