搭建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()); } } }
擴散模塊采集: