使用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语法 智能等待 隐 ...
随机推荐
- 升级openssl 到 1.0.1s 最新版
1.下载 wget http://www.openssl.org/source/openssl-1.0.1s.tar.gz 2.解压 tar -zxf openssl-1.0.1s.tar.gz cd ...
- .NET中 数据库连接
(转自:http://www.iwms.net/n459c12.aspx) SQL Server ODBC Standard Security:"Driver={SQL Server};S ...
- UI-隐藏键盘
键盘的出现于隐藏(代码实现)================================= 1.通知案例: #import "ViewController.h" #import ...
- canvas 绘制图像
结果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...
- 看过自会理解, Photon Server 常见概念分析.
http://stackoverflow.com/questions/10823915/photon-server-newbie-questions/11653419#11653419 Channel ...
- linux下json库的编译及例程
.下载JsonCpp http://sourceforge.net/projects/jsoncpp/files/ .下载scons http://sourceforge.net/projects/s ...
- OpenCV - 图片二值化,计算白色像素点的个数
直接上代码吧: import cv2 import numpy as np from PIL import Image area = def getWhitePixel(img): global ar ...
- K-means聚类分析MATLAB代码
function kmeans load q1x.dat; a1=round(98*rand+1); a2=round(98*rand+1); miao1=[q1x(a1,1),q1x(a1,2)]; ...
- 重温CLR(六)方法和参数
实例构造器和类(引用类型) 构造器是将类型的实例初始化为良好状态的特殊方法.构造器方法在“方法定义元数据表”中始终叫做.ctor(constructor的简称).创建引用类型的实例时,首先为实例的数据 ...
- DbEntry 默认 主键ID为long
DbEntry 默认 主键ID为long,如果自己表中的主键ID为int,可以通过以下方式修改: public class Company :DbObjectModel<Company,int& ...