java+selenium模拟登陆新浪微博demo

  

java代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class crawler {

    public static void main(String[] args) throws InterruptedException {

        //设置webdriver驱动的位置
        System.setProperty("webdriver.gecko.driver","C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        WebDriver webDriver = new FirefoxDriver();
        webDriver.manage().window().maximize();
        webDriver.navigate().to("https://weibo.com/");
        Thread.sleep(10000);
        //定位到用户名输入框
        WebElement username = webDriver.findElement(By.xpath("//*[@id=\"loginname\"]"));
        //定位到密码输入框
        WebElement password = webDriver.findElement(By.xpath("//*[@id=\"pl_login_form\"]/div/div[3]/div[2]/div/input"));
        //输入用户名
        username.sendKeys("*****");
        //输入密码
        password.sendKeys("*****");
        Thread.sleep(1000);
        WebElement login = webDriver.findElement(By.xpath("/html/body/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div/div/div/div[3]/div[6]/a"));
        login.click();
        Thread.sleep(5000);
        //登陆后等待5s让js等异步内容加载完成,最后输出页面html
        System.out.println(webDriver.getPageSource());
    }

}

pom.xml里的依赖

<dependencies>

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

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-firefox-driver</artifactId>
      <version>3.12.0</version>
    </dependency>

  </dependencies>

firefox webdriver下载地址https://github.com/mozilla/geckodriver/releases/。

运行效果,浏览器中登陆成功,idea里面可以输出页面html。

原文地址:https://www.cnblogs.com/littlechicken/p/9162893.html

时间: 2024-10-13 06:32:59

java+selenium模拟登陆新浪微博demo的相关文章

selenium 模拟登陆豆瓣,爬去武林外传的短评

selenium 模拟登陆豆瓣,爬去武林外传的短评: 在最开始写爬虫的时候,抓取豆瓣评论,我们从F12里面是可以直接发现接口的,但是最近豆瓣更新,数据是JS异步加载的,所以没有找到合适的方法爬去,于是采用了selenium来模拟浏览器爬取. 豆瓣登陆也是改了样式,我们可以发现登陆页面是在另一个frame里面 所以代码如下: # -*- coding:utf-8 -*- # 导包 import time from selenium import webdriver from selenium.we

使用python - selenium模拟登陆b站

思路 输入用户名密码点击登陆 获取验证码的原始图片与有缺口的图片 找出两张图片的缺口起始处 拖动碎片 功能代码段 # 使用到的库 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_condit

selenium模拟登陆

案例一:网站模拟登录 # -*- coding:utf-8 -*- # douban.py #coding=utf-8 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys class Douban(): def __init__(self): self.url = "https://www.douban.com/" self.driver = webdriv

python selenium 模拟登陆百度账号

代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_username' passwd = "your_password" driver = webdriver.Chrome() # 打开chrome浏览器 driver.get(url) # 打开指定的网页 input_username = driver.find_element_by_id(&q

新浪微博模拟登陆+数据抓取(java实现)

模拟登陆部分实现: package token.exe; import java.math.BigInteger; import java.util.Random; import org.apache.commons.codec.binary.Base64; public class WeiboEncoder { private static BigInteger n = null; private static BigInteger e = null; /** * 使用Base64加密用户名(

Python——新浪微博爬虫之模拟登陆

在编写微博爬虫的过程中,免不了要进行模拟登录,因为新浪微博不登陆只能访问少量的微博信息. 然而,由于新浪微博的反爬虫功能在不断更新,例如改变了密码的加密算法(RSA),以前的一些模拟登陆方式已经不适用了.所以一开始试了好几种方法,均不能成功.后来受http://www.jb51.net/article/46053.htm启发,已经实现了. 目前,亲测能用的步骤是:①通过预登录,使用GET方法,获得登录所需的servertime, nonce, pubkey, rsakv:②使用encode64加

Jsoup实现java模拟登陆

Jsoup实现java模拟登陆 1:如何获取cookies. 1.1:由于需要登录,故先模拟登陆时的那一个<form>,这里用map来装载变量名称,变量值. Map<String, String> map = new HashMap<String, String>(); map.put("username", username); map.put("pwd", md5.getMD5ofStr(password)); map.put

【教程】模拟登陆百度之Java代码版

[背景] 之前已经写了教程,分析模拟登陆百度的逻辑: [教程]手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程 然后又去用不同的语言: Python的: [教程]模拟登陆网站 之 Python版(内含两种版本的完整的可运行的代码) C#的: [教程]模拟登陆网站 之 C#版(内含两种版本的完整的可运行的代码) 去实现对应逻辑. 此处,继续尝试,用Java代码,实现这套,模拟登陆百度,的逻辑. [折腾过程] 1.之前已经整理了一些Java代码: http://c

selenium自动化测试工具模拟登陆爬取当当网top500畅销书单

selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制. 当当网目前还没有对这方面加以限制,所以今天就用这个练习熟悉一下selenium操作,我们可以试一下爬取一下当当网top500的畅销书单的相关信息,页面如下: 虽然这个页面不用登录就可以进来,但是我们可以随便试一下模拟登陆,直接在这个页面上面点击登录进入登录界面,然后会弹出一下窗口, 这是百分百会