使用selenium webdriver实现自动登录CSDN

原创 2018年04月16日 22:48:07

    我们使用webmagic爬取网站,最大的难点不是webmagic的使用,而是各大网站的反爬虫。比如登录后可见,比如限制IP一天中的访问次数、访问频率。今天我们就用webdriver来实现自动登录CSDN,拿到登陆后的cookies从而模拟登录。

    首先在加入依赖

<dependency>
     <groupId>us.codecraft</groupId>
     <artifactId>webmagic-selenium</artifactId>
     <version>0.7.3</version>
</dependency>
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Main {
    public static void main(String[] args) throws Exception {
        // 初始化参数据
        System.setProperty("webdriver.chrome.driver", "C:/bin/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        String baseUrl = "https://passport.csdn.net/account/login";
        // 加载url
        driver.get(baseUrl);
        // 等待加载完成
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        // 获取页面元素
        WebElement elemUsername = driver.findElement(By.name("username"));
        WebElement elemPassword = driver.findElement(By.name("password"));
        WebElement btn = driver.findElement(By.className("logging"));
        WebElement rememberMe = driver.findElement(By.id("rememberMe"));
        // 操作页面元素
        elemUsername.clear();
        elemPassword.clear();
        elemUsername.sendKeys("username");
        elemPassword.sendKeys("password");
        rememberMe.click();
        btn.click();
        // 提交表单
        //btn.submit();
        Thread.sleep(5000);
        //driver.get("http://msg.csdn.net/");
        Thread.sleep(5000);
        // 获取cookies
        //driver.manage().getCookies();
        Set<org.openqa.selenium.Cookie> cookies = driver.manage().getCookies();
        System.out.println("Size: " + cookies.size());
        Iterator<org.openqa.selenium.Cookie> itr = cookies.iterator();

        CookieStore cookieStore = new BasicCookieStore();

        while (itr.hasNext()) {
            Cookie cookie = itr.next();
            BasicClientCookie bcco = new BasicClientCookie(cookie.getName(), cookie.getValue());
            bcco.setDomain(cookie.getDomain());
            bcco.setPath(cookie.getPath());
            cookieStore.addCookie(bcco);
        }
    }
}

    如此便能拿到登录后的cookie,后续需要访问该网站其他网页,只需将拿到的cookie放到请求中“骗过”服务器即可

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yixiao1874/article/details/79967849

让你的窗口透明起来

#define WS_EX_LAYERED           0x00080000#define LWA_COLORKEY            0x00000001#define LWA_ALPH...
  • uaiia
  • uaiia
  • 2001-01-18 15:22:00
  • 941

Python实现Selenium实现自动登录CSDN

最近有个需求是写个脚本自动登陆某个望网站,并干嘛干嘛的,于是乎研究了下python的东西,发现python有个好用的库selenium可以直接调用 那么问题来了,要用哪个浏览器实现呢,我这边用的是火...
  • xshuang2
  • xshuang2
  • 2016-12-15 16:16:28
  • 545

selenium 淘宝登陆购买,基础实现

淘宝网,自动登陆与购买
  • weixin_37432081
  • weixin_37432081
  • 2017-03-26 11:13:05
  • 273

[Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能。而这篇文章主要简单介绍如何实现自动登录163邮箱,同时继续介绍Seleni...
  • Eastmount
  • Eastmount
  • 2015-08-21 17:57:43
  • 20180

Webdriver UI自动化测试 实现自动登录

自动化测试实施过程中,有测试需求:第一个用例时登录用例,只要登录成功,后面的用例就不需要重复登录。随机想到了每次请求目标网站,携带上次登录成功后服务端返回的cookie,来实现绕过登录: 保...
  • wangxin1982314
  • wangxin1982314
  • 2015-12-17 15:26:38
  • 1963

selenium+python自动登录脚本

os:windows 前提:Python,selenium,IEDriverServer.exe,ie浏览器 首先安装Python2.7 安装成功后,计算机联网状态下在cmd命令行下输入:pip ...
  • nice_xp
  • nice_xp
  • 2017-02-07 20:24:52
  • 2149

Python+Selenium实现新浪微博自动登录

Python+Selenium实现新浪微博自动登录环境说明:win10+eclipse+chrome 备注:需要下载chrome浏览器的驱动(地址: https://sites.google.co...
  • u013919836
  • u013919836
  • 2017-03-20 15:23:53
  • 436

selenium+Java实现自动登录

WebDriverTest.java package test; //import java.util.NoSuchElementException; //import java.uti...
  • qq_23069665
  • qq_23069665
  • 2017-03-29 15:33:33
  • 1770

网络爬虫:利用Selenium实现登录

转载链接:http://www.tongtongxue.com/archives/180.html 写过爬虫程序的码农都知道,实现爬虫程序登录的方法有多种,我这利用Selenium来实现登录。提供源...
  • lzj20150325
  • lzj20150325
  • 2015-11-17 08:09:59
  • 2510

[乐意黎原创] 使用Selenium webdriver+Firefox浏览器来登录新浪微博

原文章 http://blog.csdn.net/aerchi/article/details/46876361 不小心删除了,费了好大劲终于恢复了。 有个需求测试,需要用webdriver 登录到...
  • aerchi
  • aerchi
  • 2016-07-20 11:17:10
  • 2050
收藏助手
不良信息举报
您举报文章:使用selenium webdriver实现自动登录CSDN
举报原因:
原因补充:

(最多只允许输入30个字)