使用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的浏览器!
使用Selenium登录新浪微博的更多相关文章
- 【Python3爬虫】最新的模拟登录新浪微博教程
一.写在前面 首先呢,由于之前重装系统,又要重新配置环境,然后还有一些别的事,导致我一直没有写爬虫了,不过现在又可以继续写了. 然后我这次说的模拟登录新浪微博呢,不是使用Selenium模拟浏览器操作 ...
- Python+selenium登录测试
我们以登录新浪微博为案例来讲解,首先进入登录页面,输入用户名和密码,点击登录按钮,并且获得用户信息以验证是否登录成功. Web地址:https://login.sina.com.cn/signup/s ...
- Cookies与保持登录(新浪微博的简单模拟登录)
Cookies与保持登录(新浪微博的简单登录) .note-content {font-family: "Helvetica Neue",Arial,"Hiragino ...
- Python爬虫学习——使用Cookie登录新浪微博
1.首先在浏览器中进入WAP版微博的网址,因为手机版微博的内容较为简洁,方便后续使用正则表达式或者beautifulSoup等工具对所需要内容进行过滤 https://login.weibo.cn/l ...
- 测试开发Python培训:模拟登录新浪微博-技术篇
测试开发Python培训:模拟登录新浪微博-技术篇 一般一个初学者项目的起点就是登陆功能的自动化,而面临的项目不同实现的技术难度是不一样的,poptest在做测试开发培训中更加关注技术难点,掌握技 ...
- Java实现模拟登录新浪微博
毕设题目要使用到新浪微博数据,所以要爬取新浪微博的数据.一般而言,新浪微博的爬虫有两种模式:新浪官方API和模拟登录新浪微博.两种方法的异同点和适用情况就无须赘述了.前辈的文章已经非常多了.写这篇文章 ...
- 模拟登录新浪微博(Python)
PC 登录新浪微博时, 在客户端用js预先对用户名.密码都进行了加密, 而且在POST之前会GET 一组参数,这也将作为POST_DATA 的一部分. 这样, 就不能用通常的那种简单方法来模拟POST ...
- 模拟登录新浪微博(Python) - 转
Update: 如果只是写个小爬虫,访问需要登录的页面,采用填入cookie 的方法吧,简单粗暴有效,详细见:http://www.douban.com/note/264976536/模拟登陆有时需要 ...
- 使用Selenium对新浪微博模拟登录
Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...
随机推荐
- 【scala】基础类型
基础类型 位数 Boolean - Byte ...
- Django的 CBV和FBV
FBV CBV 回顾多重继承和Mixin 回到顶部 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以 ...
- 【设计模式】calendar的单例需求和实现
calendar单例需求: 参数:有default的calendar file 1.如果无实例,无参数调用,取default,检查是否合法,存入实例 2.如果无实例,有参数调用,检查是否合法,存入实例 ...
- 专业工具软件AutoCAD复习资料
专业工具软件AutoCAD复习资料 下载地址:http://download.csdn.net/detail/zhangrelay/9849503 这里给出了一些dwg格式的CAD资料,用于课后学习和 ...
- HSRP/VRRP/GLBP
当网络足够大的时候,网络规划师要考虑的技光是网络本身的性能问题,冗余技术也是必不可少的. 常见的冗余网关技术有• 热备份路由协议(HSRP).• 虚拟路由器冗余协议(VRRP)• 网关负载均衡协议(G ...
- 高级C/C++编译技术之读书笔记(五)之动态库版本控制
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架 ...
- openfaas k8s 集成
备注 k8s 1.6 以下版本与k8s 1.6 以上版本会有一些简单的区别 1. 克隆k8s 部署文档 https://github.com/openfaas/faas-netes 2. 创 ...
- Sql 中Collate用法
今天查询sqlite的时候需要不区分大小写,查了下文档,需要使用collate nocase.顺便学习下collate的用法. collate在sql中是用来定义排序规则的.排序规则其实就是当比较两个 ...
- implicit declaration of function 'init_MUTEX'
'init_MUTEX' 在新版本系统上已被淘汰 改用sema_init(sem, 1);
- MySQL连接查询、联合查询、子查询
参考地址:http://blog.csdn.net/u011277123/article/details/54863371 1.MySQL连接查询 连接查询:将多张表(>=2)进行记录的连接(按 ...