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

  • 相关阅读:
    微服务架构综述
    何为正确
    如何在github中写出自己的readme文件
    redhat中如何在一块网卡上创建多个虚拟IP
    Vim 编辑器与shell命令脚本
    管道符、重定向与环境变量
    linux常用命令
    Android性能优化总结
    HTTP 协议漫谈
    Zxing QRCode
  • 原文地址:https://www.cnblogs.com/wzben/p/5024830.html
Copyright © 2020-2023  润新知