这里我们给出一个htmlunit实例,爬百度云;

为了更好的体现htmlunit的优势,我们先用httpclient爬下;

这个是我的百度云用户首页

我们现在要爬用户分享的文件 ;

我们先用httpclient:

代码如下:package com.open1111;

import java.io.IOException;

import org.apache.http.HttpEntity;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

public class BlogCrawler {

public static void main(String[] args) throws ClientProtocolException, IOException {

CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httpclient实例

HttpGet httpget = new HttpGet("https://pan.baidu.com/share/home?uk=305605848#category/type=0"); // 创建httpget实例

httpget.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0"); // 设置请求头消息User-Agent

CloseableHttpResponse response = httpclient.execute(httpget); // 执行get请求

HttpEntity entity=response.getEntity(); // 获取返回实体

System.out.println("网页内容:"+EntityUtils.toString(entity, "utf-8")); // 指定编码打印网页内容

response.close(); // 关闭流和释放系统资源

}

}

运行结果:

我们得到的是这东西,没获取到数据,原因就是百度云的数据加载 是通过ajax加载以及js渲染上去的,所以用httpclient搞不定;

这时候,我们用htmlunit搞下:package com.open1111;

import java.io.IOException;

import java.net.MalformedURLException;

import com.gargoylesoftware.htmlunit.BrowserVersion;

import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class HtmlUnitTest7 {

public static void main(String[] args){

WebClient webClient=new WebClient(BrowserVersion.FIREFOX_52);

HtmlPage page;

try {

page = webClient.getPage("https://pan.baidu.com/share/home?uk=305605848#category/type=0");

Thread.sleep(10000); // 休息10秒钟 等待htmlunit执行js

System.out.println(page.asXml());

} catch (FailingHttpStatusCodeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

webClient.close(); // 关闭客户端 释放内存

}

}

}

运行输出:

Htmlunit搞数据搞出来了。。

代码用了sleep 10秒  主要是因为htmlunit执行ajax js也是需要一定的时候 具体多长时间 不定,并且htmlunit没有提供类似假如执行完ajax js后的事件或者提醒api,所以我们只能人工去判断 比如每个5秒去判断一次,尝试三次机会;

具体实现 等后面发布至尊vip 爬百度云资源 大伙可以参考下;

java 爬取百度云盘,htmlunit 爬取百度云资源相关推荐

  1. 使用Python爬取微信群里的百度云资源

    需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被河蟹的,群里除了分享链接外,就是各种抱怨 "怎么又失效了 ...

  2. Python爬取并闪存微信群里的百度云资源

    需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被河蟹的,群里除了分享链接外,就是各种抱怨 "怎么又失效了 ...

  3. python爬虫百度云资源分享吧_python爬虫入门 实战(七)---爬取并闪存微信群里的百度云资源...

    (声明:本篇文章以交流技术为目的,希望大家支持正版,支持院线~) 需求背景: 最近误入一个免费(daoban)资源的分享群(正经脸),群里每天都在刷资源链接.但是大家都知道,百度云的分享链接是很容易被 ...

  4. python微信开发实例 pdf 百度网盘_用python看女神微信里的百度云资源有啥?

    最近小编一直苦心研究,怎么给大家发放更多的资料和资源链接.大家都知道,百度云的分享链接是很容易被和谐的,群里除了分享链接外,就是各种抱怨 "怎么又失效了","又和谐了.. ...

  5. eclipse、JDK百度云资源链接

    eclipse.JDK百度云资源链接 有需要自取 链接:https://pan.baidu.com/s/1h5cFJ7XhIxhC2UlhenbeZw 提取码:iebm (已更新!)

  6. 如何搜索百度云资源?带你打开新世界大门!

    原文地址:好物分享 | 也许是最好用的百度云资源搜索工具 百度云 一个神奇的存在 在其他云盘纷纷倒下时 它依然坚挺着 你是不是在想 如何能够搜索全网的资源? 今天就给大家分享一个神器:PanDownl ...

  7. 前端、后端,数据结构,编程语言,微信小程序,英语,理综,PS,MySql,Python,JS,Jquery,Ajax,免费百度云资源链接

    高中英语知识点汇总百度云: 链接:HTTPS://pan.baidu.com/s/1X0ELSe7LorfLAzNMrUpkxA密码:byo5 英语基础语法百度云: 链接:HTTPS://pan.ba ...

  8. python从入门到精通视频教程百度云-python从入门到精通视频教程百度云资源

    python从入门到精通视频教程百度云资源来源 : 华清远见 2019-05-24 随着新技术的不断推进,在未来无论我们是要进入网页开发.数据分析.机器学习.人工智能还是无人车云计算等领域,Pytho ...

  9. 64位百度云 catia v6_逃狱兄弟百度云资源已更新,1080P高清资源分享64

    进最后阅读原文获取免费资源在线观看 曾经属于香港电影的时代,随着内地电影业迅猛的发展,逐步的落寞了.逃狱兄弟百度云资源已更新,1080P高清资源分享64 但是属于香港电影的情怀依旧难以让人割舍.逃狱兄 ...

最新文章

  1. ACE-Streams架构简介及应用
  2. [Elasticsearch2.x] 多字段搜索 (三) - multi_match查询和多数字段 译
  3. cmake 添加二进制文件_CMake构建系统
  4. android 自动打包工具,AutopackingAndroid
  5. 学习 SCCM 2012 的思路
  6. 【AGC005F】Many Easy Problems FFT 容斥原理
  7. Tri-training regression, 协同训练回归
  8. [转载]年末致富有新招,写个程序抓红包
  9. 51单片机十字交通灯程序设计
  10. FPGA中case语句4选1数据选择器
  11. 《计算机网络教程》(微课版 第五版)第一章 概述 课后习题及答案
  12. 【C++】右值引用、移动构造函数
  13. linux过滤目录文件,SCP使用技巧-递归排除文件
  14. Zebra BI for Excel
  15. 两张图读懂Saas Paas Iaas
  16. 【资源-文档】转载侵删 | STM32F10XXX参考手册(中文)
  17. K210(SiPEED MaixBit)MicroPython使用参考(三、播放SD卡内视频文件)
  18. NMS——非极大值抑制
  19. aws mongodb_在AWS上托管React flask mongodb Web应用程序第4部分
  20. android 电脑模拟点击,点击真理电脑版怎么下载 安卓模拟器电脑版下载地址

热门文章

  1. 微博轻量级RPC框架Motan
  2. 【历史上的今天】1 月 30 日:鼠标之父诞生;Trisquel GNU/Linux 问世;Office 2007 开始零售
  3. 【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计
  4. python 处理超大文件
  5. si4463开发总结
  6. 用例与用例,参与者与参与者_参与通讯内容的30个想法
  7. win7计算机评分性能,Win7内存评分:两种规格6分以内_内存硬盘技巧-中关村在线...
  8. 【Axure教程】多选和批量操作的表格模板
  9. HTML5+CSS大作业——仿新浪微博个人主(4页) html期末作业代码网页设计
  10. 【转】通往GTD的一百步(中英双语版)