`

解析 通过模拟浏览器得到的HtmlPage

 
阅读更多

虾米链接:http://2814704901.iteye.com/blog/1930426

之所以运用WebClient  是因为 我们有时候查看网页源代码的时候看到的只有js代码  经常遇到的就是【发布日期】

WebClient可以实现先把网页下载到一个指定路径  然后进行解析 

不过 这里没有通过下载 而且直接解析WebClient获取到的HtmlPage

url:网页路径  code:编码 一般都是utf-8或者gb2312

public static ResultGetInfo getDom(String url,String code) throws FailingHttpStatusCodeException,

MalformedURLException, IOException {

ResultGetInfo rgi=new ResultGetInfo();

final WebClient webClient = new WebClient();

// WebClient 相当于一个浏览器

// 设置webClient的相关参数

webClient.setJavaScriptEnabled(true);

webClient.setCssEnabled(false);

webClient.setAjaxController(new NicelyResynchronizingAjaxController());

webClient.setTimeout(30000);

webClient.setThrowExceptionOnScriptError(false);

// 模拟浏览器打开一个目标网址

final HtmlPage page = (HtmlPage) webClient.getPage(url);

 

//摘要

String summary="";

 if(url.contains("qq")&&url.contains("blog")){

//处理标题

title=HandlerSummary.getQQTitle(page);

String tt=title;

String t1=title.substring(0,title.lastIndexOf("."));

title=t1.substring(0,t1.lastIndexOf(".")-4);

summary=HandlerSummary.getQQSummary(page, title);

//标题:不能浅尝辄止 2013.8.4    2013.7.28

//把"."换成"-"

String t=tt.replace(".", "-");

                        //把字符串日期转换为Date类型的日期

d=GetDate.getTimeThread(t);

                   }

                 rg.setSummary(summary);

                 rg.setDate(d);

//关闭模拟浏览器

webClient.closeAllWindows();

return rgi;

 

}

//下面就是解析HtmlPage

//腾讯博客

public static String getQQSummary(HtmlPage page,String title){

String summary=title;

//blogDetailDiv  

list.add("div");

//获取div中id=“blogDetailDiv ”的文本

//我这里是通过把Htmlpage对象转换为HtmlElement对象集合

List<HtmlElement> x=page.getDocumentElement().getHtmlElementsByTagNames(list);

for(int i=0;i<x.size();i++){

HtmlElement element=x.get(i);

if(element.getAttribute("id").equals("blogDetailDiv")){

summary=element.asText();

break;

}

}

return summary;

}

 

//遍历HtmlElement集合 这里和遍历org.jsoup.select.Elements是一样的道理! 

分享到:
评论

相关推荐

    模拟浏览器打开相应网页

    模拟浏览器就是通过程序来完成这一系列步骤,它能够执行类似的功能,但不依赖于用户界面。 Python中,最常用的库之一是Selenium。Selenium提供了WebDriver接口,可以控制多种浏览器(如Chrome、Firefox等),实现...

    python模拟firefox浏览器抓取数据

    ### Python 模拟 Firefox 浏览器抓取数据 #### 一、准备工作 为了实现用Python模拟Firefox浏览器抓取网页数据的功能,...通过上述步骤,我们可以利用 Python 成功地模拟 Firefox 浏览器进行网页数据的抓取和解析。

    跨浏览器打印网页数据

    通过CSS的`@page`规则,可以在每一页的顶部或底部添加页眉和页脚,包括页码、日期或其他相关信息。 4. **JavaScript打印功能**: JavaScript可以用来控制打印行为,比如使用`window.print()`函数触发打印对话框,...

    通过htmlunit获取执行js代码后的html文档

    HTMLUnit是一个Java库,设计用于模拟浏览器行为,特别是在无头模式下执行JavaScript并解析HTML文档。这个库在自动化测试、网页抓取以及其他需要与网页交互的场景中非常有用。通过HTMLUnit,开发者可以编写程序来模拟...

    Python-RoboBrowser是一款简单的浏览网页的Pythonic库无需依赖独立的浏览器

    - 自动化测试:在需要模拟用户行为的测试场景中,RoboBrowser可以避免依赖真实的浏览器环境。 - 数据分析:对那些不提供API但可以公开浏览的数据源,RoboBrowser可以帮助开发者提取所需信息。 总的来说,Python的...

    手机浏览器调用微信H5支付源码

    它允许用户通过微信应用内或微信内置浏览器直接完成支付流程,无需跳转到其他支付平台,提高了用户体验。以下是对这套手机浏览器调用微信H5支付源码的详细说明: 1. **支付流程**: 微信H5支付的流程大致包括以下...

    post模拟提交获取提交后的HTML代码

    此外,对于大规模的自动化测试,可以使用像Selenium这样的工具,它提供了更强大的浏览器模拟功能,可以更好地模拟用户行为。 总之,模拟提交是IT领域中一种重要的技术手段,通过编程方式自动化执行网络交互,提高了...

    php snoopy 模拟表单提交 数据抓取

    Snoopy库通过构造HTTP请求,模拟浏览器向服务器发送GET或POST请求,接收服务器返回的HTML内容。这使得我们可以在没有浏览器的情况下获取到网页数据。在提供的压缩包文件中,snoopy.class.php是Snoopy类的实现文件,...

    Python获取浏览器窗口句柄过程解析

    ### Python获取浏览器窗口句柄过程解析 在自动化测试与网页抓取领域,使用Python结合Selenium库来控制浏览器成为了一种常见的技术手段。其中,获取浏览器窗口句柄并进行窗口切换是实现多窗口操作的关键步骤之一。...

    腾讯微博模拟登陆,获取需要登陆的页面源码

    此外,对于动态加载的内容,可能还需要使用如Selenium这样的工具,它可以模拟浏览器行为,处理JavaScript渲染的内容。如果腾讯微博使用了OAuth或其他授权方式,还需要按照相应的协议来处理。 总之,模拟登录腾讯...

    python 爬虫ghost.py

    这里提到的"python 爬虫ghost.py"是一种利用Python实现的Ghost浏览器渲染模式的爬虫工具,它允许我们模拟浏览器执行JavaScript,从而获取那些依赖于JavaScript生成的网页内容。 Ghost.py是这个工具的核心库,它是...

    htmlunit-2.27-src.zip

    - 网页抓取:通过模拟浏览器行为,获取动态加载的数据,避免被网站反爬策略阻拦。 - 性能评估:通过控制测试环境,精确测量网页加载和交互的性能。 总之,"htmlunit-2.27-src.zip"是一个宝贵的开发资源,提供了深入...

    HtmlUnit官网下载

    HtmlUnit的核心功能是通过模拟浏览器的行为,解析和执行HTML、CSS以及JavaScript代码,从而获取网页内容。这对于自动化测试,特别是针对Web应用的功能测试,非常有用。开发者可以使用HtmlUnit来验证网页的动态行为,...

    htmlunit-2.31.jar

    2. **模拟浏览器行为**:通过HTMLUnit,你可以模拟用户在网页上的各种操作,如点击链接、填写表单、提交数据等。这对于自动化测试和数据抓取场景十分关键,因为它允许程序模拟真实用户的行为。 3. **快速且轻量级**...

    使用Python的Requests和Selenium与BeautifulSoup结合,以爬虫和解析网页内容.txt

    2. **Selenium**: 可以模拟浏览器行为并加载动态页面,尤其适用于那些需要JavaScript渲染的网站。 3. **BeautifulSoup**: 用来解析HTML文档,便于从HTML结构中提取特定数据。 #### Requests 库的基本用法 `...

    htmlunit-2.8(api文档).zip

    HTMLUnit是一个Java库,专为自动化网页测试和模拟浏览器行为而设计。它作为一个无头(headless)浏览器,能够执行JavaScript,处理AJAX,以及与网页进行交互,而无需实际打开一个图形用户界面。这个“htmlunit-2.8...

    python模拟google抓取快手视频数据

    具体来说,Selenium 负责模拟浏览器行为并获取页面源代码;BeautifulSoup 解析 HTML 并提取关键信息;pymysql 则负责将这些数据持久化存储至 MySQL 数据库中。此外,还加入了时间间隔处理来确保抓取行为符合网站规定...

    htmlunit2.8 + jsoup1.7网站数据抓取

    3. **解析DOM**:将HtmlPage转换为Jsoup的Document对象,以便使用Jsoup的方法进行操作。 4. **数据提取**:利用Jsoup的select()方法,通过CSS选择器定位元素,然后提取文本、属性等数据。 5. **存储和处理数据**:将...

    干货前端工程师面试题汇总内含题目解析和详细答案

    DOCTYPE HTML&gt;` 时,浏览器将使用最新的标准来解析和渲染页面,确保页面遵循HTML5标准。 - **混杂模式**则发生在没有正确声明doctype或使用了旧版doctype的情况下,此时浏览器会采用向后兼容的方式来渲染页面,可能...

    htmlunit-2.1.5源码

    4. **网络通信模拟**:它可以模拟浏览器的HTTP和HTTPS请求,包括设置cookies、处理重定向等,提供了一种在离线环境中测试网页行为的方法。 5. **异常处理和错误报告**:HTMLUnit在遇到JavaScript错误或其他问题时会...

Global site tag (gtag.js) - Google Analytics