Java爬虫第二篇:模拟登录CSDN

简介: Java爬虫第二篇:模拟登录CSDN

Java爬虫第二篇:模拟登录CSDN

概述

本章讲解模拟登录CSDN。

由于CSDN登录页面加入扫码登录,不能直接获取到账号登录页面,因此需要在页面执行动作,切换到账号登录操作。

1. selenium maven配置

<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.13.0</version>
        </dependency>

2. chromedriver 本地路径配置

public class SeleniumUtil {
  public final static String CHROMEDRIVERPATH = "D://soft//chromedriver.exe";
  public static void sleep(int m) {
        try {
            Thread.sleep(m);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

3. 测试

public class Test{
  public static void main(String[] args) {
    String username = "xxxx@163.com";
        String password = "***********";
        String url = "https://passport.csdn.net/login";
        System.setProperty("webdriver.chrome.driver", SeleniumUtil.CHROMEDRIVERPATH );// chromedriver localPath
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("–no-sandbox");  //--start-maximized
        WebDriver driver = new ChromeDriver(chromeOptions);
        driver.get(url);
        SeleniumUtil.sleep(1000);
        WebElement mainSelectE = driver.findElement(By.cssSelector(".main-select"));
        List<WebElement> loginType = mainSelectE.findElements(By.tagName("a"));
        bgm:for (int i = 0; i < loginType.size(); i++) {
            WebElement aelement = loginType.get(i);
            if( aelement.getText().indexOf("帐号登录") != -1){
                aelement.click();
                System.out.println("切换到帐号登录....");
                break bgm;
            }
        }
        System.out.println("继续操作....");
        SeleniumUtil.sleep(1000);
        WebElement formE = driver.findElement(By.cssSelector("form"));
        WebElement nameE = formE.findElement(By.id("all"));
        WebElement passwordE = formE.findElement(By.id("password"));
        nameE.sendKeys(username);
        formE.findElement(By.id("password-number")).sendKeys(password);
        formE.findElement(By.cssSelector("button")).click();
        System.out.println(driver.manage().getCookies());
  }
}


目录
相关文章
|
4天前
|
数据采集 存储 Java
高德地图爬虫实践:Java多线程并发处理策略
高德地图爬虫实践:Java多线程并发处理策略
|
4天前
|
Java
CSDN每日一练(Java)--小艺的英文名
CSDN每日一练(Java)--小艺的英文名
|
6月前
|
数据采集 网络协议 Java
Java爬虫框架下代理使用中的TCP连接池问题及解决方案
Java爬虫框架下代理使用中的TCP连接池问题及解决方案
|
7月前
|
数据采集 Java API
Java爬虫实战:API商品数据接口调用
随着互联网的发展,越来越多的商家开始将自己的商品数据通过API接口对外开放,以供其他开发者使用。这些API接口可以提供丰富的商品数据,包括商品名称、价格、库存、图片等信息。对于Java爬虫开发者来说,通过调用这些API接口,可以更加便捷地获取商品数据,避免了爬取网页数据的繁琐过程。本文将介绍如何使用Java调用API商品数据接口,实现商品数据的获取和处理。
|
4天前
|
分布式计算 Oracle Java
第一篇CSDN博客——Java入门指南:学习Java编程的第一步
第一篇CSDN博客——Java入门指南:学习Java编程的第一步
|
4天前
|
数据采集 前端开发 JavaScript
Java网络爬虫实践:解析微信公众号页面的技巧
Java网络爬虫实践:解析微信公众号页面的技巧
|
4天前
|
数据采集 Web App开发 Java
盘点Java爬虫框架
盘点Java爬虫框架
38 0
|
4天前
|
数据采集 存储 Java
Java爬虫与SSL代理:实际案例分析与技术探讨
Java爬虫与SSL代理:实际案例分析与技术探讨
|
4天前
|
数据采集 Java API
百度搜索:蓝易云【Java爬虫与Python爬虫有什么区别】
综上所述,Java爬虫和Python爬虫在语言特性、代码复杂性、生态系统、并发处理和执行性能等方面存在一些区别。选择使用哪种爬虫工具取决于具体的需求、项目要求和个人技术偏好。
48 0
|
4天前
|
数据采集 JavaScript 前端开发
Java爬虫攻略:应对JavaScript登录表单
Java爬虫攻略:应对JavaScript登录表单

热门文章

最新文章

http://www.vxiaotou.com