搭建用Selenium模拟chrome浏览器运行环境,为模拟登陆做准备
搭建Selenium自动化环境
1、首先需要下载好对应自己chrome对应的chromedriver
我们在地址栏中输入chrome://version可以查看到更加详细的版本情况。
不仅可以显示浏览器版本,还显示了用户代理,Flash版本,路径和状态信息等
在这里插入图片描述
2、根据自己的chrome下载对应的chromedriver版本(可以通过这里查找)
http://chromedriver.storage.googleapis.com/index.html
在这里插入图片描述
3、下载完毕后,本地指定一个文件夹
在这里插入图片描述
4、下载后将chromedriver路径添加到系统环境变量path中
在这里插入图片描述
<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> </dependency> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifactId> <version>0.7.3</version> </dependency> <!-- https://mvnrepository.com/artifact/us.codecraft/webmagic-selenium --> <!-- Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 --> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-selenium</artifactId> <version>0.7.3</version> </dependency>
通过下列代码测试,在eclipse中运行后调到百度界面
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class BaiduSelenium { public static void main(String[] args) { //C:\Program Files (x86)\Google\Chrome\Application\ System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); // WebDriver driver=new ChromeDriver(); driver.get("http://www.baidu.com/"); } }
后续会更新通过页面登录的爬虫文章。。。。
扩散:增加模拟登陆,获取cookie值
package com.ibaiqi.spider.test; 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; import java.util.Iterator; import java.util.Set; import java.util.concurrent.TimeUnit; public class Selenium_shyrcwNet { public static void main(String[] args) throws InterruptedException { //C:\Program Files (x86)\Google\Chrome\Application\ //csdn 用户名:18762178588 asplover1Linww System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); // WebDriver driver=new ChromeDriver(); String baseUrl="http://www.shyrcw.net/members/login.htm"; 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("btn_login")); WebElement btn = driver.findElement(By.id("J_dologin")); System.out.println("btn的值:"+btn.getText()+btn.getSize()); // 操作页面元素 elemUsername.clear(); elemPassword.clear(); elemUsername.sendKeys("用户名"); elemPassword.sendKeys("密码"); // rememberMe.click(); btn.click(); // 提交表单 //btn.submit(); Thread.sleep(5000); //driver.get("http://msg.csdn.net/"); Thread.sleep(5000); // 获取cookies //driver.manage().getCookies System.out.println("准备提取cookies"); Set<Cookie> cookies = driver.manage().getCookies(); System.out.println("Size: " + cookies.size()); Iterator<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); System.out.println("打印cookie: 域名:"+cookie.getDomain()+"cookie路径"+cookie.getPath()+"cookie名称:"+cookie.getName()+"cookie值:"+cookie.getValue()); } } }
扩散模块采集:
做产品的程序,才是好的程序员!