优点:可设置一个运行JavaScript的时间,解决页面数据延时加载问题

缺点:慢,而且参数不好设置

     // 爬取网站网址+关键字(关键字需转换为gbk的url,如"%2B%3E")String url = "http://s.zhaobiao.cn/search.do?queryword=" + URLEncoder.encode(name, "GBK");// 查询参数Map<String, String> parameMap = new HashMap<>();// 查询关键字(上方已设置)// parameMap.put("queryword", URLEncoder.encode(name, "GBK"));// 省份parameMap.put("province", "");// 查询类型:招标parameMap.put("searchtype", "zb");// 投标文件parameMap.put("bidfile", "");// 推荐parameMap.put("recommend", "");//parameMap.put("leftday", "");// 查询年份parameMap.put("searchyear", "");// 全文搜索parameMap.put("field", "all");// 展示方式为标题(title) 附概要(abstract)parameMap.put("displayStyle", "title");// 是否搜索附件 0.不搜索 1.搜索parameMap.put("attachment", "1");// 查询历史开始时间parameMap.put("starttime", startTime);// 查询历史结束时间parameMap.put("endtime", endTime);for (Entry<String, String> en : parameMap.entrySet()) {url += "&" + en.getKey() + "=" + en.getValue();}// 构造一个webClient 模拟Chrome 浏览器WebClient webClient = new WebClient(BrowserVersion.CHROME);// 支持JavaScriptwebClient.getOptions().setJavaScriptEnabled(true);webClient.getOptions().setCssEnabled(false);webClient.getOptions().setActiveXNative(false);webClient.getOptions().setCssEnabled(false);webClient.getOptions().setThrowExceptionOnScriptError(false);webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);webClient.getOptions().setTimeout(5000);// 设置一个运行JavaScript的时间,解决页面数据延时加载问题webClient.waitForBackgroundJavaScript(5000);HtmlPage rootPage;try {rootPage = webClient.getPage(url);//如果执行的太快导致页面请求异常,请设置等待时间try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blockLOGGER.error("线程休眠1秒钟出现异常!", e);e.printStackTrace();}String html = rootPage.asXml();Document doc = Jsoup.parse(html);// 解析Element limit = doc.body().selectFirst("div[class=html]");

爬虫二式 —— WebClient相关推荐

  1. struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法

    笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...

  2. 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解

    本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 在上一篇文章为大家介绍了响应式IO模型和WebClient的基本 ...

  3. 精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用

    本文是精讲响应式WebClient第3篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...

  4. 精讲响应式WebClient第4篇-文件上传与下载

    本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...

  5. python爬虫影评_Python爬虫(二十)_动态爬取影评信息

    本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...

  6. python爬取凤凰新闻网_python3.6爬取凤凰网新闻-爬虫框架式思维

    一.序言 先前几篇爬虫的代码,是简单的脚本代码.在爬取小网页觉得挺简单.高效,但涉及复杂网页的时候,就要考虑成熟的爬虫框架与分布式.本篇博客作为无框架式爬虫和有框架式爬虫的一个过渡,介绍具有框架式思维 ...

  7. python爬虫式_Python网络爬虫(增量式爬虫)

    一.增量式爬虫背景: 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影.小说网站会根据作者创作的进度实时更新最新的章节数据 ...

  8. python selenium p_Python爬虫(二十一)_Selenium与PhantomJS

    本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试 ...

  9. python爬虫(二)_HTTP的请求和响应

    HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的方法 HTTPS(HyperText Transfer Prot ...

最新文章

  1. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
  2. 如何让敏捷中的每日站会发挥最大效果?
  3. DSP学习--BCC校验(异或校验)
  4. postgres 退出_如何退出postgresql
  5. 同步方法 调用异步防范_Spring一个注解实现方法的异步调用,再也不用单开线程了...
  6. python tk protocol_Python Modbus_tk在树莓派上实现rtu master
  7. 通过Cisco packet Tracer 划分vlan实现不同交换机间pc进行通信
  8. 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
  9. jquery自适应宽度轮播图
  10. Luogu3810 三维偏序(陌上花开)
  11. java后台开发必备的9大类基础工具,你集齐了?
  12. Linux 内核 下载 编译 安装 2021 ubuntu
  13. DeepFool: a simple and accurate method to fool deep neural networks
  14. 解决虚拟机突然连不上网的问题
  15. 电瓶车不交罚款会有什么处罚
  16. Java 在线编程编译工具上线,直接运行Java代码
  17. 论:CMMI 过程改进规程
  18. 开源自助BI工具,傻瓜式BI分析,支持多种数据源
  19. mysql的mgr是什么意思_MySQL之MGR简介
  20. python判断一个列表是否包含另一个列表_Python判断一个list中是否包含另一个list全部元素的方法分析...

热门文章

  1. 思维的技术:如何破解工作生活中的两难冲突?
  2. 一些常用的正则表达式例如邮箱,手机号等
  3. c语言中英文翻译 毕业设计,c语言中英文翻译资料 本科毕业论文.doc
  4. Linux下安装中文字体库
  5. 探索 Word 2007 开发 II(二):引用 Amazon 图书信息
  6. 教你从零开始做外贸网站搭建?
  7. android 副屏驱动_高通 android平台LCD驱动分析
  8. Java webservice详解
  9. 逆向开发技术栈通_逆向方向
  10. win7开机只有个计算机,win7开机黑屏只有鼠标的三种解决方法