使用Selenium登陸新浪微博

爲了總結一下Selenium的用法,具體用了這個例子來講明一下。css

Selenium簡單來講,就是經過程序驅動一個瀏覽器,而且能夠經過程序來幫你作一些事情,例如點擊、填表呀之類的。web

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

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

可是效率低,由於要打開一個個瀏覽器。cookie

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

一、首先,要有Selenium的jar包。網站

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

三、輔助工具,Selenium IDE,能夠跟蹤你在頁面上作了什麼。(不過一些複雜的頁面的話,效果很差)對象

 

 

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

//設置瀏覽器驅動的位置,很重要,否則打開的話多是空白頁
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的瀏覽器!

相關文章
相關標籤/搜索