使用Selenium登錄新浪微博


為了總結一下Selenium的用法,具體用了這個例子來說明一下。

Selenium簡單來說,就是通過程序驅動一個瀏覽器,並且可以通過程序來幫你做一些事情,例如點擊、填表呀之類的。

換句話說,你在瀏覽器上面看到的東西,他都能給你呈現;你能在頁面上做的東西,它也能做。

Selenium厲害的地方在於,它是一個真正的瀏覽器,可以對js,css進行渲染,所以WebMagic這個爬蟲也整合了這個DownLoader。

但是效率低,因為要打開一個個瀏覽器。

言歸正傳,下面介紹使用方法。

1、首先,要有Selenium的jar包。

2、其次、要有合適的瀏覽器驅動。(例如Chrome的驅動是chromedriver.exe)

3、輔助工具,Selenium IDE,可以跟蹤你在頁面上做了什么。(不過一些復雜的頁面的話,效果不好)

 

 

public static void main(String args[]) throws InterruptedException{

//設置瀏覽器驅動的位置,很重要,不然打開的話可能是空白頁
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver_x64.exe");

//實例化一個瀏覽器對象
WebDriver driver = new ChromeDriver();

//網址(手機版的新浪微博,因為這個網站登錄不要驗證碼)
String baseUrl = "https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F";

//打開瀏覽器
driver.get(baseUrl);

 

//這個時候會打開一個瀏覽器,連接到你所get的網站

 

//因為網站不一定可以馬上打開,讓進程停一下,否則頁面的元素會找不到。
Thread.sleep(5000);

//打開后的頁面

 

//我們要填寫的地方有兩個,帳號、密碼,然后再點擊登錄。

//找到名為"loginName"的元素,填寫帳號
driver.findElement(By.id("loginName")).clear();
driver.findElement(By.id("loginName")).sendKeys("帳號");

//找到名為"loginPassword"的元素,填寫密碼
driver.findElement(By.id("loginPassword")).clear();
driver.findElement(By.id("loginPassword")).sendKeys("密碼");

//找到登錄按鈕,點擊
driver.findElement(By.id("loginAction")).click();

//然后這個頁面就會進入到登錄后的界面了

//因為網站不一定可以馬上打開,讓進程停一下,否則頁面還沒有加載出來就進行下一步了。
Thread.sleep(5000);

 

}

 

//一些延伸

//獲取cookies

Set<Cookie> cookies = driver.manage().getCookies();
String cookieStr = "";
for (Cookie cookie : cookies) {
cookieStr += cookie.getName() + "=" + cookie.getValue() + "; ";
}

//不過一個WebDriver在登錄后自帶了Cookies了,直接打開其他地方也是可以的

注意: WebDriver打開的是一個純凈的,不帶任何插件和Cookies的瀏覽器!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM