场景:爬虫网页列表上的链接,用于再次爬虫,主要功能是列表翻页功能。

代码参考:

package com;import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.DomNodeList;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;public class BlogAutoClick {public static void main(String[] args){String sUrl="IP";//网址  //webclient设置  final  WebClient webClient = new WebClient(BrowserVersion.CHROME); //创建一个webclient    webClient.getOptions().setJavaScriptEnabled(true); // 启动JS            webClient.getOptions().setUseInsecureSSL(true);//忽略ssl认证              webClient.getOptions().setCssEnabled(false);//禁用Css,可避免自动二次请求CSS进行渲染              webClient.getOptions().setThrowExceptionOnScriptError(false);//运行错误时,不抛出异常     webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);  webClient.setAjaxController(new NicelyResynchronizingAjaxController());// 设置Ajax异步        //登录  int i_clickCount=0;try {  HtmlPage page = (HtmlPage) webClient.getPage(sUrl);  webClient.waitForBackgroundJavaScript(10000);//等待1秒 boolean flag=true;while(flag){//本页链接点击HtmlDivision articlediv=(HtmlDivision)page.getElementById("article_list");   DomNodeList<HtmlElement> articleas=articlediv.getElementsByTagName("a"); for(HtmlElement a:articleas){HtmlPage llpage=(HtmlPage)a.click();DomNodeList<DomElement> h1name= llpage.getElementsByTagName("h1");String strname=h1name.get(0).asText();            i_clickCount++;System.out.print("article:"+strname+"is auto clicked at times:"+i_clickCount);}//翻页HtmlDivision pagediv=(HtmlDivision)page.getElementById("papelist");DomNodeList<HtmlElement> pageas=pagediv.getElementsByTagName("a");boolean nextpage=false;for(HtmlElement a:pageas){if (a.asText().equals("下一页")) {page=(HtmlPage)a.click();webClient.waitForBackgroundJavaScript(10000);//等待1秒 nextpage=true;//下一页存在break;}}if(nextpage==false) flag=false;//没有下一页了,退出循环}}catch (Exception e) {  // TODO Auto-generated catch block  e.printStackTrace();  } }
}

HtmlUnit爬取页面列表链接相关推荐

  1. Scrapy翻页爬取示例——列表页、详情页

    Scrapy翻页爬取示例--列表页.详情页 引言: 本人最近在帮助同事们爬取一批英-泰双语数据,顺带复习了一下scrapy爬虫相关的知识.下面以简单的小项目为例,一起来开始吧! 示例一:爬取列表页 本 ...

  2. 项目三:爬取视频磁力链接

    项目三:爬取视频磁力链接 标签(空格分隔): 爬虫 BeautifulSoup -具体技术实现原理类似项目二 1. 项目任务分析 类似上一个小项目中爬取图片的技术原理,本次小项目尝试对相同网站上的可供 ...

  3. Python简单爬取电影磁力链接

    Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...

  4. 使用python爬取页面的图片,4k壁纸,动态爬取+selenium

    文章目录 代码实现 在不同文件夹下 在同一文件夹下 使用python指令批量修改文件名 使用循环下载 滑动屏动态下载 来源博客:[Harryの心阁] 代码实现 可以修改n的值调整页码,实现多页面爬取, ...

  5. python生成QQ机器人爬取百度文库链接推送好友并生成词云

    QQ机器人爬取百度文库链接推送好友并生成词云 一.环境准备 二.实现QQ机器人 1.QQ机器人介绍 2.安装方法 3.实现自己的QQ机器人 三.百度文库内容链接爬取推送好友 代码实现: 思路分析 1. ...

  6. Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)

    上个博客写了:  Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068 1.sc ...

  7. python实战-HTML形式爬虫-批量爬取电影下载链接

    文章目录 一.前言 二.思路 1.网站返回内容 2.url分页结构 3.子页面访问形式 4.多种下载链接判断 三.具体代码的实现 四.总结 一.前言   喜欢看片的小伙伴,肯定想打造属于自己的私人影院 ...

  8. 爬虫小案例之爬取京东商品链接

    观察URL翻页的变化 爬取页面URL如下 base_url='https://search.jd.com/Search?keyword='+keyword     for x in range(1,n ...

  9. Python post请求模拟登录淘宝并爬取商品列表!

    一.前言 大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录.一共是三篇博客,记录了我爬取淘宝网的经历.期间也有朋友向我 ...

最新文章

  1. 2017年7个主要的金融行业数据趋势
  2. DeepFusion:基于单视图深度和梯度预测的单目SLAM实时稠密三维重建
  3. 车牌识别--Towards End-to-End License Plate Detection and Recognition: A Large Dataset and Baseline
  4. 参加51CTO学院软考培训,通过后感想
  5. Matlab Robotic Toolbox V9.10工具箱(二):正/逆运动学
  6. django_rest_framework之GenericAPIView(一)源码讲解
  7. 【NLP】用于语音识别、分词的隐马尔科夫模型HMM
  8. 【Visual C++】游戏开发笔记之八——基础动画显示(二)游戏循环的使用
  9. 神经网络中的病态曲率-Pathological Curve-举例
  10. Webtask后端即服务:无服务器快速教程
  11. svn忽略指定文件夹下的文件_管理SteamLibrary文件夹下的acf文件
  12. python制作软件excel_利用Python制作一个 截图+Excel操作浏览器小工具
  13. 【Python】range和xrange区别
  14. 《那些年啊,那些事——一个程序员的奋斗史》——65
  15. Qt: 监听文件夹QFileSystemWatcher;
  16. ElasticJob
  17. 离散数学复习二:空集、补集、德摩根定律、异或、广义交和广义并
  18. 乐鑫ESP32-S3双核处理器,专为 AIoT 市场打造
  19. RJS Debugging
  20. Discuz招商加盟门户网站整站模板/加盟项目网站商业版源码/整站带测试数据

热门文章

  1. 深入理解JVM虚拟机(八):编译器优化
  2. [OSDI 16] Wukong : 基于RDMA的高并发、快速的分布式RDF Graph Query系统
  3. xlst 解析 html c,怎樣實現利用xslt把xml文件內容顯示到html文件中?急!
  4. python自带模块连接数据库_Python模块Sqlite数据库模块
  5. Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法
  6. 访问 IIS 元数据库失败解决问题的方法
  7. 利用多线程实现报表的高效导出
  8. 关于mysql行级锁中MVCC的一些理解
  9. 函数名的应用(第一对象) 闭包 装饰器
  10. 【Linux笔记(001) 】-- centos7 系统目录结构与文件