通过Selenium实现新浪微博自动授权
新浪微博password授权模式需要申请,否则调用access_token返回HTTP status 400,code方式授权需要用户自己在浏览器输入用户名、密码,烦。http client模拟吧,发现多了一个ticket,sina用加密算法算的。如何直接授权?google了一下,看到网上有几种方案:
1、自己java按照ticket算法生成ticket然后http client模拟提交的;
2、通过js实现授权的;
我发明种新的,用Selenium!
WebDriver driver = new ChromeDriver();driver.get(url + "?" + queryString);WebElement userIdElement = driver.findElement(By.xpath(xPathOfUserId));logger.info("--- userName: " + userIdElement);if (userIdElement != null) {userIdElement.sendKeys(userName);WebElement passwordElement = driver.findElement(By.xpath(xPathOfPassword));logger.info("--- password: " + passwordElement);if (passwordElement != null) {passwordElement.sendKeys(password);WebElement submitElement = driver.findElement(By.xpath(xPathOfSubmit));if (submitElement != null) {logger.info("--- submit: " + submitElement);submitElement.click();}}}logger.info("waiting...");try {Thread.sleep(30000);} catch (InterruptedException e) {e.printStackTrace();}logger.info("quit");driver.quit();