ITPub博客

首页 > 数据库 > 数据库开发技术 > selenium2java爬虫示例

selenium2java爬虫示例

原创 数据库开发技术 作者:FunTester 时间:2019-09-05 09:41:44 0 删除 编辑

本人在使用图灵机器人的过程中,需要丰富一下机器人知识库里面的笑话、段子等内容,就得去网上爬一些内容下来,经过尝试终于成功了,效果一般般,主要原因是添加的知识条目审核不通过,还有就是爬虫次数限制,暂时放弃了,以后打算用接口做爬虫,selenium爬起来很容易出错,浏览器加载太慢了,一旦次数太多很耗时。分享一下代码,供大家参考。

 1package wepractice;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5import java.util.List;
6import java.util.Map;
7import java.util.Set;
8import selenium.Library;
9import selenium.Excel;
10
11public class NeiHanjokes extends Library{
12    public static void main(String[] args) {
13        Library library = new Library();
14        List<String[]> sheet = new ArrayList<String[]>();//新建list,用于存放每个测试用例的测试结果
15        Map<Integer, List<String[]>> dateJoke = new HashMap<Integer, List<String[]>>();
16
17        driver.get("http://neihanshequ.com/");
18        String home = driver.getWindowHandle();
19        library.findElementByXpathAndClick(".//*[@id='detail-list']/li[1]/div/div[2]/a/div/h1/p");
20        Set<String> handles = driver.getWindowHandles();
21        for(String handle : handles){
22            if (!handle.equals(home)) {
23                driver.switchTo().window(handle);
24            }
25        }
26        for (int i = 0; i < 15; i++) {
27            library.output(i);
28            String joke = library.getTextByXpath("html/body/div[3]/div[1]/div/ul/li[1]/div/div[2]/a/div/h1/p");
29            String[]  jokes = new String[1];
30            jokes[0] = joke;
31            sheet.add(jokes);
32            library.findElementByIdAndClick("prevGroupLink");
33        }
34
35        dateJoke.put(1, sheet);
36        Excel excel = new Excel();
37        excel.writeXlsx(dateJoke);
38        driver.close();//关闭窗口
39        for(String handle : handles){//切换窗口
40            if (handle.equals(home)) {
41                driver.switchTo().window(handle);
42            }
43        }
44        driver.quit();//退出浏览器
45    }
46}

技术类文章精选

  1. java一行代码打印心形

  2. Linux性能监控软件netdata中文汉化版

  3. 接口测试代码覆盖率(jacoco)方案分享

  4. 性能测试框架

  5. 如何在Linux命令行界面愉快进行性能测试

  6. 图解HTTP脑图

  7. 如何测试概率型业务接口

  8. httpclient处理多用户同时在线

  9. 将swagger文档自动变成测试代码

  10. 五行代码构建静态博客

  11. httpclient如何处理302重定向

非技术文章精选

  1. 为什么选择软件测试作为职业道路?

  2. 成为杰出Java开发人员的10个步骤

  3. 写给所有人的编程思维

公众号地图 ☢️ 一起来~FunTester



原文作者:FunTester;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-07

  • 博文量
    1037
  • 访问量
    420671