爬虫二式 —— WebClient
优点:可设置一个运行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相关推荐
- struct用法_精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
笔者在之前已经写了一系列的关于RestTemplate的文章,如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HT ...
- 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
本文是精讲响应式WebClient第2篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 在上一篇文章为大家介绍了响应式IO模型和WebClient的基本 ...
- 精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用
本文是精讲响应式WebClient第3篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...
- 精讲响应式WebClient第4篇-文件上传与下载
本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...
- python爬虫影评_Python爬虫(二十)_动态爬取影评信息
本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...
- python爬取凤凰新闻网_python3.6爬取凤凰网新闻-爬虫框架式思维
一.序言 先前几篇爬虫的代码,是简单的脚本代码.在爬取小网页觉得挺简单.高效,但涉及复杂网页的时候,就要考虑成熟的爬虫框架与分布式.本篇博客作为无框架式爬虫和有框架式爬虫的一个过渡,介绍具有框架式思维 ...
- python爬虫式_Python网络爬虫(增量式爬虫)
一.增量式爬虫背景: 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影.小说网站会根据作者创作的进度实时更新最新的章节数据 ...
- python selenium p_Python爬虫(二十一)_Selenium与PhantomJS
本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试 ...
- python爬虫(二)_HTTP的请求和响应
HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的方法 HTTPS(HyperText Transfer Prot ...
最新文章
- 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
- 如何让敏捷中的每日站会发挥最大效果?
- DSP学习--BCC校验(异或校验)
- postgres 退出_如何退出postgresql
- 同步方法 调用异步防范_Spring一个注解实现方法的异步调用,再也不用单开线程了...
- python tk protocol_Python Modbus_tk在树莓派上实现rtu master
- 通过Cisco packet Tracer 划分vlan实现不同交换机间pc进行通信
- 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
- jquery自适应宽度轮播图
- Luogu3810 三维偏序(陌上花开)
- java后台开发必备的9大类基础工具,你集齐了?
- Linux 内核 下载 编译 安装 2021 ubuntu
- DeepFool: a simple and accurate method to fool deep neural networks
- 解决虚拟机突然连不上网的问题
- 电瓶车不交罚款会有什么处罚
- Java 在线编程编译工具上线,直接运行Java代码
- 论:CMMI 过程改进规程
- 开源自助BI工具,傻瓜式BI分析,支持多种数据源
- mysql的mgr是什么意思_MySQL之MGR简介
- python判断一个列表是否包含另一个列表_Python判断一个list中是否包含另一个list全部元素的方法分析...