最近对于使用爬虫模拟注册特别有兴趣,其中有一些注册需要使用邮箱进行接收验证码,网上我查到的资料,都是需要邮箱开通授权码后,通过授权码进行收发邮件,我需要的功能是通过正常的账号密码进行登陆,然后收取邮件。大致流程是:模拟登陆163邮箱,然后拉取最新的邮件,读取出验证码。
首先参考的是这篇博文所写的:https://www.oschina.net/code/snippet_128625_12592,试验之后发现登陆失败,我拦截的URL和博文中的不一样;
在经过一番尝试无果后,想到使用真正的模拟用户登陆来进行收取邮件,于是找到了一个叫selenium的WEB UI自动化测试工具,
selenium使用安装:https://www.cnblogs.com/JHblogs/p/7699951.html
Maven依赖为:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.8.1</version> </dependency>
使用selenium登陆邮箱的方法为:
public static void main(String[] args) throws Exception { System.setProperty("webdriver.chrome.driver","C:\Users\Administrator\Downloads\chromedriver_win32\chromedriver.exe"); ChromeDriver driver = new ChromeDriver(); driver.get("https://mail.163.com/"); WebDriver frame = driver.switchTo().frame("x-URS-iframe"); WebElement name = frame.findElement(By.ByName.name("email")); name.sendKeys(""); WebElement password = frame.findElement(By.ByName.name("password")); password.sendKeys(""); WebElement login = frame.findElement(By.ById.id("dologin")); login.click(); }