selenium2java两个小爬虫示例
来源:互联网 发布:手机网站的空间域名 编辑:程序博客网 时间:2024/05/21 00:51
本人在使用图灵机器人的过程中,需要丰富一下机器人知识库里面的笑话、段子等内容,就得去网上爬一些内容下来,经过尝试终于成功了,效果一般般,主要原因是添加的知识条目审核不通过,还有就是爬虫次数限制,暂时放弃了,以后打算用接口做爬虫,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();//退出浏览器}}
package wepractice;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import selenium.Excel;import selenium.Library;public class ColdJokes extends Library{public static void main(String[] args) {Library library = new Library();//新建library对象并初始化List<String[]> sheet = new ArrayList<String[]>();//新建并初始化listMap<Integer, List<String[]>> dateJoke = new HashMap<Integer, List<String[]>>();//新建并实例化mapdriver.get("http://xiaohua.zol.com.cn/lengxiaohua/");//访问网址String home = driver.getWindowHandle();//获取当前窗口句柄library.findElementByClassNameAndClick("all-read");//查看第一个全文Set<String> handles = driver.getWindowHandles();//获取当前所有句柄for(String handle : handles){//切换窗口if (!handle.equals(home)) {driver.switchTo().window(handle);}}for (int i = 0; i < 10; i++) {library.output(i + 1);//输出次数String joke = library.getTextByClassName("article-text");//获取内容 String[] jokes = new String[1];//新建并初始化string[]数组 jokes[0] = joke;//讲内容存入string[]数组 sheet.add(jokes);//存入list中 library.findElementByTextAndClick("上一页");//点击上一页} dateJoke.put(1, sheet); Excel excel = new Excel();//新建并初始化excel对象 excel.writeXlsx(dateJoke);//保存excel文档 driver.close();//关闭窗口 for(String handle : handles){//切换窗口if (handle.equals(home)) {driver.switchTo().window(handle);}} driver.quit();//退出浏览器}}
阅读全文
0 0
- selenium2java两个小爬虫示例
- selenium2java切换iframe表单示例
- selenium2java写一个小小的爬虫程序
- selenium2java使用select处理下拉框示例
- 七月算法《python爬虫》第一课:Python爬虫小示例
- jsp实现验证的两个小示例
- Java定时器的连两个小示例
- python3+Scrapy环境配置外送两个小爬虫
- CUDA 示例程序reduction中两个有意思的小函数
- JavaScript DOM编程 学习笔记-两个小示例
- perl多线程爬虫示例
- 一些爬虫的示例
- Python 爬虫示例
- Java简单爬虫示例
- 爬虫示例程序
- python3 爬虫 简单示例
- python爬虫基本示例
- Python 爬虫项目示例
- 三次缓存,imgloder配置,二次采样
- 剑指offer:数字在排序数组中出现的次数
- moveToFirst和moveToNext的区别
- CentOS 7.0下使用yum安装MySQL
- Kafka简介、基本原理、执行流程与使用场景
- selenium2java两个小爬虫示例
- 根据日期算星期(基姆拉尔森公式)
- KMP 算法
- expdp impdp导入导出指定数据库表
- JQuery效果
- Oracle SQL 部分特殊字符转义及escape的用法
- [CG]Intersection of Line Segments(0163)(计算几何,求线段是否相交)
- AUTOSAR Network Management
- HDU 3416 Marriage Match IV (SPFA+Dinic)