HtmlUnit设置代理并解析IFrame页面
来源:互联网 发布:友情链接网站源码 编辑:程序博客网 时间:2024/04/29 17:24
1、需求:支持代理设置访问,并采集网页下iframe框架内的页面内容
2、参考代码如下:
package com;import java.io.FileInputStream;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;import com.gargoylesoftware.htmlunit.ProxyConfig;import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.DomNodeList;import com.gargoylesoftware.htmlunit.html.HtmlElement;import com.gargoylesoftware.htmlunit.html.HtmlPage;public class EBayHU {public static void main(String[] args) {//打开excel表,准备采集入表try { //创建一个webclient WebClient webClient = new WebClient(BrowserVersion.CHROME); // 启动JS webClient.getOptions().setJavaScriptEnabled(true); //忽略ssl认证 webClient.getOptions().setUseInsecureSSL(true); //禁用Css,可避免自动二次请求CSS进行渲染 webClient.getOptions().setCssEnabled(false); //运行错误时,不抛出异常webClient.getOptions().setThrowExceptionOnScriptError(false); // 设置Ajax异步 webClient.setAjaxController(new NicelyResynchronizingAjaxController()); //设置代理 ProxyConfig proxyConfig = webClient.getOptions().getProxyConfig(); proxyConfig.setProxyHost("IP"); proxyConfig.setProxyPort(port); //获取页面 HtmlPage page = webClient.getPage("url"); webClient.waitForBackgroundJavaScript(10000); //商品标题 HtmlElement itemTitle =page.getHtmlElementById("itemTitle"); System.out.println(itemTitle.asText()); //商品图片 HtmlElement propic =page.getHtmlElementById("vi_main_img_fs"); DomNodeList<HtmlElement> picnodes=propic.getElementsByTagName("img"); for(int m=0;m<picnodes.size();m++){ HtmlElement pic=picnodes.get(m); page=(HtmlPage)pic.click(); webClient.waitForBackgroundJavaScript(10000); HtmlElement bigpic =page.getHtmlElementById("icImg"); String bigpicsrc=bigpic.getAttribute("src"); System.out.println(bigpicsrc); } //卖家信息 HtmlElement seller =page.getHtmlElementById("mbgLink"); String href=seller.getAttribute("href"); System.out.println(href); System.out.println(seller.asText()); //商品详情 HtmlElement descifr =page.getHtmlElementById("desc_ifr");//切换到iframe String src=descifr.getAttribute("src"); HtmlPage ifrpage=webClient.getPage(src);//读取iframe网页 webClient.waitForBackgroundJavaScript(10000); HtmlElement desc =ifrpage.getHtmlElementById("desc"); System.out.println(desc.asText());}catch (Exception e) {System.err.println( "Exception: " + e ); }}}
0 0
- HtmlUnit设置代理并解析IFrame页面
- HtmlUnit采集页面信息加工并写入excel表
- htmlunit+quartz定时抓取博文并生成jsp页面
- HtmlUnit解析动态网页并采集网页列表到Excel
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- HtmlUnit、httpclient、jsoup爬取网页信息并解析
- HtmlUnit、Httpclient、Jsoup爬取网页信息并解析
- Htmlunit 创建webclient 模拟浏览器进行解析页面
- 父页面获取子页面的高度,并给iframe设置高度
- htmlunit使用代理IP
- htmlunit使用代理IP
- 一个使用iframe引入指定页面的指定区域并设置框架透明的例子
- js判断页面是否在iframe并跳出iframe
- 获取Iframe页面高度,并将高度赋值给Iframe
- 设置iframe指定页面某控件属性
- 关于iframe跨页面设置高度
- 如何设置代理页面(Proxy)
- htmlunit - 解析HTML 的利器
- Java开发中连接数据库的方法和步骤
- ES6笔记
- [LeetCode]485. Max Consecutive Ones
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- SURF特征点检测(带源代码以及IplImage和Mat类图像转换详细过程、cvmat/mat/IplImage之间深拷贝和浅拷贝)
- HtmlUnit设置代理并解析IFrame页面
- 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
- Thread dump分析
- git命令简写--配置文件
- mysql (基础篇)---增删改数据
- C#2D游戏开发之感
- NSDate与NSString的互相转化
- Linux内核多线程(二)
- Python Appium 输入法切换