天天看點

Selenium webdriver模拟登陸CSDN(webmagic java爬蟲架構)首先然後接着最後

所需jar包:

連結:https://pan.baidu.com/s/1t1lcYDVS4iiTEXDacIm4Iw 

提取碼:9l9r 

複制這段内容後打開百度網盤手機App,操作更友善哦

首先

需要一個浏覽器的驅動器,這裡選擇chrome的驅動器(64位的電腦,32位驅動器也能用),在這裡下載下傳http://chromedriver.storage.googleapis.com/index.html

注意下載下傳對應版本(版本什麼的百度就行...)

引入代碼

String filepath = "D:\\coding\\support\\driver\\chromedriver.exe";//這裡是驅動器位址
File file = new File(filepath);
if (!file.exists()) {
	System.out.println("錯誤==============:chromedriver檔案不存在!");
}
System.setProperty("webdriver.chrome.driver",filepath);
           

然後

給他一個網址,(這裡選擇CSDN的網址)

WebDriver driver = new ChromeDriver();
driver.get("https://passport.csdn.net/account/login");
           

接着

就一直尋找元素點選元素...,比如,你登入的頁面是這樣的,你就需要先點選一下賬号密碼登入(頁面可能随時會變)

Selenium webdriver模拟登陸CSDN(webmagic java爬蟲架構)首先然後接着最後

檢視源代碼找到這個元素的定位:

Selenium webdriver模拟登陸CSDN(webmagic java爬蟲架構)首先然後接着最後

然後就得到尋找這個元素的代碼,讓他點選一下,記得頁面切換時停頓一下,否則容易來不及加載導緻出錯

driver.findElement(By.xpath("//div[@class='main-select']//ul//li[2]")).click();
// 防止頁面未能及時加載出來而設定一段時間延遲
try {
      Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
        }
           

同理,擷取賬号密碼設定成為相應的值,點選登入

driver.findElement(By.id("all")).sendKeys(username);
        driver.findElement(By.id("password-number")).sendKeys(password);
        //driver.findElement(By.xpath("//form//div//div[@class='form-group']//div//button")).click();//剛開始還能用...現在不能用了
        driver.findElement(By.cssSelector("button[data-type=account]")).click();
           

最後

你就可以登入了,開心的開始你的爬蟲了(不過,你隻能開心一兩次,因為很快你就會被發現,網站具有反爬機制(或者說防盜機制...),你就需要輸入手機驗證碼了...)