为了总结一下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的浏览器!

最新文章

  1. SQL中SET和SELECT赋值的区别
  2. GeoHash核心原理解析
  3. Javascript 对输入框中的内容进行 “全选/反选”
  4. XSS之学习误区分析
  5. java JdbcTemplate源码
  6. 如何优化cocos2d程序的内存使用和程序大小:第二部分_(转)
  7. 北京Uber优步司机奖励政策(12月3日)
  8. Javascript selection的兼容性写法介绍
  9. android Handler机制之ThreadLocal详解
  10. 将一个JSON数组[{},{},{}]按一定规则合并到另一个JSON数组[{},{},{}]
  11. jQuery实现商品详情 详细参数页面切换
  12. 【论文阅读】MEAL: Multi-Model Ensemble via Adversarial Learning
  13. shell篇(二)
  14. tomcat shutdown.sh结束不了,Could not contact localhost:8005
  15. iOS 计算源码行数
  16. pythonl练习笔记——爬虫的初级、中级、高级所匹配的知识
  17. SpringData JPA查询分页demo
  18. Spring—Ioc
  19. linux centos 7 下安装ElasticSearch5.4
  20. OpenStack部署博客推荐

热门文章

  1. Linux 下硬链接和软链接的说明
  2. a标签设置锚点定位div
  3. PostgreSQL流复制记录
  4. Golang的接口
  5. 利用Python进行文章特征提取(一)
  6. 0GDB调试程序进阶
  7. [转载] C++中this指针的用法详解
  8. 互联网公司面试必问的mysql题目(下)
  9. 【精品分享二】ASP.NET MVC系列精品图书高清PDF下载
  10. iframe添加点击事件