使用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的浏览器!

相关文章
相关标签/搜索