• 搭建用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)GoogleChromeApplication
    
                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)GoogleChromeApplication
                //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

    做产品的程序,才是好的程序员!
  • 相关阅读:
    (转) Android的Window类
    android 打开文件
    Android线程优先级
    Hierarchy viewer problems
    android:windowSoftInputMode
    (转) Android 安全机制
    Mobl试用之helloword
    写给自己对软件测试经历的总结
    Mobl试用二
    黑马程序员面向对象基础:属性和方法
  • 原文地址:https://www.cnblogs.com/asplover/p/12740732.html
Copyright © 2020-2023  润新知