虾米链接: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 浏览器进行网页数据的抓取和解析。
通过CSS的`@page`规则,可以在每一页的顶部或底部添加页眉和页脚,包括页码、日期或其他相关信息。 4. **JavaScript打印功能**: JavaScript可以用来控制打印行为,比如使用`window.print()`函数触发打印对话框,...
HTMLUnit是一个Java库,设计用于模拟浏览器行为,特别是在无头模式下执行JavaScript并解析HTML文档。这个库在自动化测试、网页抓取以及其他需要与网页交互的场景中非常有用。通过HTMLUnit,开发者可以编写程序来模拟...
- 自动化测试:在需要模拟用户行为的测试场景中,RoboBrowser可以避免依赖真实的浏览器环境。 - 数据分析:对那些不提供API但可以公开浏览的数据源,RoboBrowser可以帮助开发者提取所需信息。 总的来说,Python的...
它允许用户通过微信应用内或微信内置浏览器直接完成支付流程,无需跳转到其他支付平台,提高了用户体验。以下是对这套手机浏览器调用微信H5支付源码的详细说明: 1. **支付流程**: 微信H5支付的流程大致包括以下...
此外,对于大规模的自动化测试,可以使用像Selenium这样的工具,它提供了更强大的浏览器模拟功能,可以更好地模拟用户行为。 总之,模拟提交是IT领域中一种重要的技术手段,通过编程方式自动化执行网络交互,提高了...
Snoopy库通过构造HTTP请求,模拟浏览器向服务器发送GET或POST请求,接收服务器返回的HTML内容。这使得我们可以在没有浏览器的情况下获取到网页数据。在提供的压缩包文件中,snoopy.class.php是Snoopy类的实现文件,...
### Python获取浏览器窗口句柄过程解析 在自动化测试与网页抓取领域,使用Python结合Selenium库来控制浏览器成为了一种常见的技术手段。其中,获取浏览器窗口句柄并进行窗口切换是实现多窗口操作的关键步骤之一。...
这个库使得开发者能够模拟人类在浏览器上的行为,对于Web爬虫和自动化测试尤其有用。让我们深入了解一下Mechanize库的核心功能和使用方法。 首先,Mechanize库提供了一个友好的API,可以方便地打开URL、导航页面和...
压缩包文件是一个简单的Python爬虫示例,它使用requests库来发送HTTP请求,并使用BeautifulSoup库来解析HTML内容。这个爬虫将访问一个网页,提取所有文章标题和链接,并将它们打印到控制台。 注意: 1、请将BASE_URL...
此外,对于动态加载的内容,可能还需要使用如Selenium这样的工具,它可以模拟浏览器行为,处理JavaScript渲染的内容。如果腾讯微博使用了OAuth或其他授权方式,还需要按照相应的协议来处理。 总之,模拟登录腾讯...
这里提到的"python 爬虫ghost.py"是一种利用Python实现的Ghost浏览器渲染模式的爬虫工具,它允许我们模拟浏览器执行JavaScript,从而获取那些依赖于JavaScript生成的网页内容。 Ghost.py是这个工具的核心库,它是...
- 网页抓取:通过模拟浏览器行为,获取动态加载的数据,避免被网站反爬策略阻拦。 - 性能评估:通过控制测试环境,精确测量网页加载和交互的性能。 总之,"htmlunit-2.27-src.zip"是一个宝贵的开发资源,提供了深入...
HtmlUnit的核心功能是通过模拟浏览器的行为,解析和执行HTML、CSS以及JavaScript代码,从而获取网页内容。这对于自动化测试,特别是针对Web应用的功能测试,非常有用。开发者可以使用HtmlUnit来验证网页的动态行为,...
2. **模拟浏览器行为**:通过HTMLUnit,你可以模拟用户在网页上的各种操作,如点击链接、填写表单、提交数据等。这对于自动化测试和数据抓取场景十分关键,因为它允许程序模拟真实用户的行为。 3. **快速且轻量级**...
2. **Selenium**: 可以模拟浏览器行为并加载动态页面,尤其适用于那些需要JavaScript渲染的网站。 3. **BeautifulSoup**: 用来解析HTML文档,便于从HTML结构中提取特定数据。 #### Requests 库的基本用法 `...
HTMLUnit是一个Java库,专为自动化网页测试和模拟浏览器行为而设计。它作为一个无头(headless)浏览器,能够执行JavaScript,处理AJAX,以及与网页进行交互,而无需实际打开一个图形用户界面。这个“htmlunit-2.8...
具体来说,Selenium 负责模拟浏览器行为并获取页面源代码;BeautifulSoup 解析 HTML 并提取关键信息;pymysql 则负责将这些数据持久化存储至 MySQL 数据库中。此外,还加入了时间间隔处理来确保抓取行为符合网站规定...
3. **解析DOM**:将HtmlPage转换为Jsoup的Document对象,以便使用Jsoup的方法进行操作。 4. **数据提取**:利用Jsoup的select()方法,通过CSS选择器定位元素,然后提取文本、属性等数据。 5. **存储和处理数据**:将...