首页 > 技术文章 > 搭建用Selenium模拟chrome浏览器运行环境,为模拟登陆做准备

asplover 2020-04-20 21:37 原文

搭建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());
          }


        }
}

 

扩散模块采集:

webMagic与chromedriver

推荐阅读