首页 > 数据库 > 数据库开发技术 > selenium2java爬虫示例
本人在使用图灵机器人的过程中,需要丰富一下机器人知识库里面的笑话、段子等内容,就得去网上爬一些内容下来,经过尝试终于成功了,效果一般般,主要原因是添加的知识条目审核不通过,还有就是爬虫次数限制,暂时放弃了,以后打算用接口做爬虫,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}
技术类文章精选
非技术文章精选
公众号地图 ☢️ 一起来~FunTester
原文作者:FunTester;如有侵权,请联系管理员删除。