本人在使用图灵机器人的过程中,需要丰富一下机器人知识库里面的笑话、段子等内容,就得去网上爬一些内容下来,经过尝试终于成功了,效果一般般,主要原因是添加的知识条目审核不通过,还有就是爬虫次数限制,暂时放弃了,以后打算用接口做爬虫,selenium爬起来很容易出错,浏览器加载太慢了,一旦次数太多很耗时。分享一下代码,供大家参考。
package wepractice;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import selenium.Library;
import selenium.Excel;
public class NeiHanjokes extends Library{
public static void main(String[] args) {
Library library = new Library();
List<String[]> sheet = new ArrayList<String[]>();//新建list,用于存放每个测试用例的测试结果
Map<Integer, List<String[]>> dateJoke = new HashMap<Integer, List<String[]>>();
driver.get("http://neihanshequ.com/");
String home = driver.getWindowHandle();
library.findElementByXpathAndClick(".//*[@id='detail-list']/li[1]/div/div[2]/a/div/h1/p");
Set<String> handles = driver.getWindowHandles();
for(String handle : handles){
if (!handle.equals(home)) {
driver.switchTo().window(handle);
}
}
for (int i = 0; i < 15; i++) {
library.output(i);
String joke = library.getTextByXpath("html/body/div[3]/div[1]/div/ul/li[1]/div/div[2]/a/div/h1/p");
String[] jokes = new String[1];
jokes[0] = joke;
sheet.add(jokes);
library.findElementByIdAndClick("prevGroupLink");
}
dateJoke.put(1, sheet);
Excel excel = new Excel();
excel.writeXlsx(dateJoke);
driver.close();//关闭窗口
for(String handle : handles){//切换窗口
if (handle.equals(home)) {
driver.switchTo().window(handle);
}
}
driver.quit();//退出浏览器
}
}
技术类文章精选