Tujuan
Saya ingin mewujudkan login otomatis pada taobao melalui kode Java, dan secara otomatis mengisi dan mengirimkan informasi login yang ditetapkan dengan mendapatkan pengaturan. Saat ini, kode ini telah diuji oleh editor dan dapat dilewati. Saya tidak tahu apakah Taobao akan memiliki strategi pemblokiran yang sesuai di masa depan.
Berbagi Kode:
paket util; impor org.openqa.selenium.by; impor org.openqa.selenium.webelement; impor org.openqa.selenium.firefox.firefoxdriver; impor org.openqa.selenium.firefox.firefoxoptions; impor org.openqa.selenium.firefox.firefoxtions; impor org.openqa.selenium.firefox.firefoxtions; impor org.openqa.selenium.firefox.firefoxtions; impor org.openqa.selenium.firefox.firefoxtions; impor org.openqa.selenium.firefox.firefoxtions; impor org.openqa.selenium.firefox.firefoxtion; java.io.file; import java.util.random; public class testcase2 {public static void main (string [] args) {System.setProperty ("webdriver.firefox.bin", "c: // file program // mozilla firefox // firefox.exe"); System.setProperty ("webdriver.gecko.driver", "c: //users//18431//ideaprojects//seleniumdemo//bin//geckodriver.exe"); Opsi firefoxoptions = firefoxoptions baru (); Profil firefoxprofile = firefoxprofile baru (file baru ("c: //users//18431//appdata//roaming//mozilla//firefox//profiles//efzu2oem.default")); options.setProfile (profil); Driver firefoxdriver = firefoxdriver baru (); driver.get ("https://login.m.taobao.com/login.htm"); // Berikut ini mulai mensimulasikan operasi normal sepenuhnya, jadi Anda akan melihat banyak operasi webElement Operations WebElement = driver.findelement (by.id ("username")); // Simulasikan pengguna klik pada kotak input nama pengguna usernameElement.click (); String username = "18588260144"; // Nomor ponsel Anda Nomor Kata sandi = "xxxxxxxxxxxx"; // kata sandi Anda acak rand = acak baru (); Coba {for (int i = 0; i <username.length (); i ++) {thread.sleep (rand.nextint (1000)); // tidur acak 0-1 kedua // masukkan satu karakter usernameelement.sendkeys (""+Username.charat (i)); } WebElement PasswordElement = driver.findElement (by.id ("password")); kata sandi.klick (); // Setelah memasuki nama pengguna, tidur secara acak selama 0-3 detik thread.sleep (rand.nextint (3000)); untuk (int i = 0; i <password.length (); i ++) {thread.sleep (rand.nextint (1000)); PasswordElement.Sendkeys (""+Password.charat (i)); } driver.findElement (by.id ("btn-submit")). Klik (); } catch (Exception e) {E.PrintStackTrace (); } coba {thread.sleep (300000); } catch (InterruptedException IE) {IE.PrintStackTrace (); } driver.quit (); }} Meringkaskan
Dapat dilihat bahwa tidak peduli bagaimana perubahan itu, tidak peduli seberapa sulitnya mensimulasikan login, ia dapat sepenuhnya mensimulasikan kebiasaan operasi manusia untuk mengimplementasikan anti-crawler. Nah, saya akan memberi tahu Anda semua. Teknologi Crawler PHP tidak direncanakan untuk terus menulis. Rasanya lebih baik menggunakan PHP untuk melakukan hal -hal yang cocok untuk itu. Tingkat crawler yang ditulis dalam PHP terlalu rendah, dan lebih baik untuk Python dan Java.