[Java爬虫] 使用 Xpath + HtmlUnit 爬取网页基本信息
发布日期:2021-06-30 16:50:40
浏览次数:3
分类:技术文章
本文共 2259 字,大约阅读时间需要 7 分钟。
一、前言
使用 Jsoup + HttpClient (组合一)基本可以爬取很多我们需要的信息了,Xpath + HtmlUnit (组合二)的组合更是强大,无论是从选择上,还是从解析上,都可以胜任组合一的。下面列举一个简单的例子,主要展示了其主要的技术:①模拟浏览器、②使用代理IP、③取消CSS、JS解析、④Xpath的简单使用
Ⅰ、其他基础:
① 使用Xpath的一个例子: ② Xpath 基本知识:Ⅱ、联系之前:
①Jsoup+HttpClient:
二、需求
现在要爬取 CSDN 的【今日推荐】的文章标题(实际应用上,应该是爬取整篇文章,很多 IT 社区就是这样建立起来的)
三、代码
package com.cun.test;import java.io.IOException;import java.net.MalformedURLException;import java.util.List;import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlElement;import com.gargoylesoftware.htmlunit.html.HtmlPage;/** * 核心技术: * 1、HtmlUnit 基本使用架构 * 2、HtmlUnit 模拟浏览器 * 3、使用代理 IP * 4、静态网页爬取,取消 CSS、JS 支持,提高速度 * @author linhongcun * */public class JsoupHttpClient { public static void main(String[] args) { // 实例化Web客户端、①模拟 Chrome 浏览器 ✔ 、②使用代理IP ✔ WebClient webClient = new WebClient(BrowserVersion.CHROME, "118.114.77.47", 8080); webClient.getOptions().setCssEnabled(false); // 取消 CSS 支持 ✔ webClient.getOptions().setJavaScriptEnabled(false); // 取消 JavaScript支持 ✔ try { HtmlPage page = webClient.getPage("https://www.csdn.net/"); // 解析获取页面 /** * Xpath:级联选择 ✔ * ① //:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 * ② h3:匹配标签 * ③ [@class='company_name']:属性名为class的值为company_name * ④ a:匹配标签 */ List
spanList=page.getByXPath("//h3[@class='company_name']/a"); for(int i=0;i innerHTML ✔ System.out.println(i+1+"、"+spanList.get(i).asText()); } } catch (FailingHttpStatusCodeException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { webClient.close(); // 关闭客户端,释放内存 } }}
pom.xml依赖
net.sourceforge.htmlunit htmlunit 2.29
四、效果
怎样,是不是觉得很简单?
——————————2018.3.22—————————
后来才发现少了网页的源码,这样使用 Xpath 的那部分代码就有点难以理解 今天就补上去吧,虽然今日推荐已经改了,但是标签结构是不变的转载地址:https://larger5.blog.csdn.net/article/details/79641404 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月19日 14时59分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
COMP7404 Machine Learing——ROC
2019-04-30
Python量子计算qiskit
2019-04-30
Python的多线程不是真的多线程(GIL全局解释器锁)
2019-04-30
CPython
2019-04-30
特征融合 & FFM(Feature Fusion Module) 特征融合模块
2019-04-30
Python手动读取MNIST数据集
2019-04-30
Python手动读取CIFAR-10数据集
2019-04-30
Pytorch(十一) —— 分布式(多GPU)训练
2019-04-30
Deeplab v3
2019-04-30
Cityscapes数据集
2019-04-30
Pytorch之经典神经网络CNN(六) —— NiN (Fashion-MNIST)
2019-04-30
NLP 之 Perplexity困惑度
2019-04-30
tensor/矩阵/图片等更换通道,调整size
2019-04-30
Py4J
2019-04-30
本地和colab 中 改变tensorflow的版本
2019-04-30
什么是端到端(end-to-end)的神经网络
2019-04-30
NAS(Neural Architecture Search) 神经结构搜索
2019-04-30
NLP 之 CRF(条件随机场)
2019-04-30
SOTA model
2019-04-30