HtmlUnit爬取页面列表链接
来源:互联网 发布:使命召唤4mac迅雷种子 编辑:程序博客网 时间:2024/05/22 04:38
场景:爬虫网页列表上的链接,用于再次爬虫,主要功能是列表翻页功能。
代码参考:
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(); } }}
阅读全文
0 0
- HtmlUnit爬取页面列表链接
- htmlunit爬取数据
- htmlunit爬取js异步加载后的页面
- htmlunit爬取js异步加载后的页面
- Htmlunit之爬取网页
- java 使用htmlunit模拟登录爬取新浪微博页面
- HtmlUnit爬取动态数据(js相关)
- python爬虫 爬取页面链接
- 取页面中的所有链接
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- java使用htmlunit爬取百度搜索信息
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- HtmlUnit、Httpclient、Jsoup爬取网页信息并解析
- 【Jsoup】配合 htmlunit 爬取异步加载的网页
- 【Jsoup】配合 htmlunit 爬取异步加载的网页
- python3.5 爬取bing搜索结果页面标题、链接
- 通过Python对各个页面链接的有效爬取
- 页面下拉列表赋值和取值
- Warning: mkdir() [function.mkdir]:Permission denied in
- 浅析面对对象 六大原则(一)
- 【多线程】Java高并发基础
- RecycleView的全选和反选
- Java中内部类的详细解析
- HtmlUnit爬取页面列表链接
- 关于服务器上PHP跟mysq还有JSl时间的问题
- surfaceview与view的对比及注意
- opencv使用BGR而非RGB的原因
- maven的setting文件说明
- laravel下 jquery-from 上传图片立即显示
- 关于UEditor上传图片后显示不正常,路径错误的原因
- laravel 实现前后端登录分离
- RecyclerView的适配器