英文网站一般用什么字体如何常看wordpress默认编辑器

张小明 2026/1/14 13:37:40
英文网站一般用什么字体,如何常看wordpress默认编辑器,wordpress前台发表文章,个人网站模板怎么做使用 Jsoup 爬取网页中的新闻与图片链接 在信息聚合、内容监控和数据挖掘的日常开发中#xff0c;如何从结构化的网页中高效提取图文内容#xff0c;是许多 Java 工程师面临的实际问题。Jsoup 作为一款轻量级且功能强大的 HTML 解析库#xff0c;凭借其类 jQuery 的选择器语…使用 Jsoup 爬取网页中的新闻与图片链接在信息聚合、内容监控和数据挖掘的日常开发中如何从结构化的网页中高效提取图文内容是许多 Java 工程师面临的实际问题。Jsoup 作为一款轻量级且功能强大的 HTML 解析库凭借其类 jQuery 的选择器语法和对 DOM 操作的良好支持成为 Java 生态中最受欢迎的爬虫工具之一。本文将带你深入实战场景以曲阜师范大学官网为例逐步掌握如何使用 Jsoup 提取新闻正文、图片链接以及批量抓取首页列表数据。过程中不仅涵盖基础 API 用法还会穿插工程实践中常见的陷阱与优化技巧帮助你写出更稳定、更具可维护性的爬虫代码。要开始使用 Jsoup首先需要将其引入项目。如果你使用的是 Maven 构建系统在pom.xml中添加如下依赖dependency groupIdorg.jsoup/groupId artifactIdjsoup/artifactId version1.17.2/version /dependency对于 Gradle 用户则在build.gradle文件中加入implementation org.jsoup:jsoup:1.17.2依赖配置完成后下一步就是连接目标网页。以下是一个典型的请求示例Document doc Jsoup.connect(http://www.qfnu.edu.cn/) .userAgent(Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36) .timeout(10000) .get();这里有几个关键点值得注意-userAgent设置了模拟浏览器的请求头避免被服务器识别为机器人而拒绝访问-timeout(10000)设定了 10 秒超时防止因网络异常导致线程阻塞- 最终返回的是一个Document对象它代表了解析后的完整 HTML 文档树后续所有元素提取都将基于此对象进行。需要注意的是某些网站启用了 HTTPS 并采用严格的证书校验机制。在测试环境中若遇到 SSL 异常可以通过自定义信任管理器绕过验证仅限调试用途SSLContext sslContext SSLContext.getInstance(TLS); sslContext.init(null, new TrustManager[]{new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) {} public void checkServerTrusted(X509Certificate[] chain, String authType) {} public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }}, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());生产环境应谨慎处理此类问题建议配置可信 CA 或使用 HttpClient 替代方案。当成功加载页面后接下来的任务是从复杂的 HTML 结构中精准定位所需内容。假设我们要提取一篇新闻的正文文本常见结构如下div classzw_content pspan styleFONT-SIZE: 16px8月30日日照市常务副市长王斌一行人来我校进行调研.../span/p pimg src/attach/2016/09/02/123920.jpg //p /div最直接的方式是根据class属性定位容器Elements contentDivs doc.getElementsByAttributeValue(class, zw_content);也可以使用更简洁的 CSS 选择器写法Element contentDiv doc.selectFirst(.zw_content);一旦获取到主体容器调用.text()方法即可提取其中所有文本内容Jsoup 会自动忽略标签并拼接段落String text contentDiv.text(); System.out.println(【新闻内容】 text);但如果希望保留图文顺序或分别处理文字与图像则需进一步拆解内部结构。例如按p标签逐段分析Elements paragraphs contentDiv.getElementsByTag(p); for (Element p : paragraphs) { if (p.select(img).isEmpty()) { System.out.println(文字段落 p.text()); } else { String imgUrl p.select(img).attr(src); System.out.println(图片链接 http://www.qfnu.edu.cn imgUrl); } }这种方式适用于需要保持原始排版逻辑的场景比如生成富文本摘要或构建图文混排的内容展示模块。至于图片链接的提取通常有两种需求获取首图和获取全部图片。前者简单直接String firstImgSrc contentDiv.select(img).first().attr(src); System.out.println(主图地址 firstImgSrc);而多图提取则需考虑边界情况——并非每条新闻都包含多张图片。为了避免IndexOutOfBoundsException推荐使用安全遍历方式Elements imgs contentDiv.select(img); ListString imageUrls new ArrayList(); for (Element img : imgs) { String src img.attr(src); if (!src.isEmpty()) { imageUrls.add(http://www.qfnu.edu.cn src); } }此外相对路径转绝对路径是一个高频操作。除了手动拼接外Jsoup 提供了absUrl方法自动补全协议和域名String absoluteUrl img.absUrl(src); // 输出http://www.qfnu.edu.cn/attach/xxx.jpg这一特性在处理不同来源页面时尤为实用能有效减少硬编码错误。面对首页新闻列表这类批量数据单一提取已无法满足需求。观察典型结构ul classnews-1-lists li img src/attach/2016/09/02/123921.jpg title我校在山东高校思政课讲课大赛中斩获佳绩 / a href/html/xxyw/2016/09/02/4648a396-c778-4116-ae79-6e61039ad9a3.html我校在山东高校思政课讲课大赛中斩获佳绩/a /li /ul我们的目标是同时提取标题、缩略图和跳转链接并组合成完整的 URL。实现步骤如下定位外层容器Elements newsListUl doc.getElementsByClass(news-1-lists);遍历每个li条目并提取信息for (Element ul : newsListUl) { Elements newsItems ul.getElementsByTag(li); for (Element item : newsItems) { Element img item.selectFirst(img); String imgUrl img ! null ? img.attr(src) : ; Element link item.selectFirst(a); String title link ! null ? link.hasAttr(title) ? link.attr(title) : link.text() : ; String articleUrl link ! null ? link.attr(href) : ; String fullImgUrl http://www.qfnu.edu.cn imgUrl; String fullArticleUrl http://www.qfnu.edu.cn articleUrl; System.out.printf(标题%s | 图片%s | 文章页%s%n, title, fullImgUrl, fullArticleUrl); } }输出结果类似标题我校在山东高校思政课讲课大赛中斩获佳绩 | 图片http://www.qfnu.edu.cn/attach/2016/09/02/123921.jpg | 文章页http://www.qfnu.edu.cn/html/xxyw/2016/09/02/4648a396-c778-4116-ae79-6e61039ad9a3.html为了便于后续处理建议封装成实体类public class NewsItem { private String title; private String imageUrl; private String articleUrl; private String summary; // getter setter }然后将每条记录存入集合统一管理ListNewsItem newsList new ArrayList(); // ... 在循环中填充数据 newsList.add(new NewsItem(title, fullImgUrl, fullArticleUrl, summary));这样不仅提升了代码可读性也为集成数据库存储或 REST 接口提供了便利。Jsoup 的强大之处在于其灵活的 CSS 选择器支持这使得我们可以像前端工程师一样精准定位元素。以下是一些常用语法及其应用场景语法说明示例tag按标签名选择div,img.class按类名选择.zw_content#id按ID选择#news-1-list[attr]存在属性[href][attrvalue]属性等于值[classzw_content]parent child直接子元素ul liel1 el2后代元素div img实际应用中组合查询往往更能应对复杂结构。例如查找src以/attach开头且width101的图片Elements specialImgs doc.select(img[src^/attach][width101]);又如只选取.news-1-lists下的直接子项li避免误选嵌套列表Elements directLi doc.select(ul.news-1-lists li);这种细粒度控制能力极大增强了爬虫的鲁棒性。另外属性操作也值得重视。除了读取值之外还可以判断是否存在某属性if (element.hasAttr(alt)) { String altText element.attr(alt); }甚至可以修改属性用于本地缓存预处理element.attr(src, local_cache/ filename);这些技巧在离线渲染或静态资源迁移中非常有用。尽管 Jsoup 功能强大但在真实项目中仍会遇到各种挑战。以下是几个常见问题及应对策略Q抓不到内容怎么办首先要确认目标内容是否由 JavaScript 动态生成。右键“查看网页源码”如果看不到对应 HTML 片段说明是 AJAX 加载。此时 Jsoup 无能为力需结合 Selenium 或 Puppeteer 等工具模拟浏览器行为。其次检查 class 名称是否准确。HTML 类名区分大小写且可能因 CMS 更新发生变化。建议使用模糊匹配doc.select([class*content]) // 包含 content 的任意类名Q中文乱码怎么解决多数情况下是因为未正确指定字符集。可在解析时显式声明编码Document doc Jsoup.parse(htmlString, UTF-8);或者在请求阶段设置请求头Connection conn Jsoup.connect(url); conn.header(Accept-Charset, utf-8); Document doc conn.get();Q如何判断某个元素是否存在最安全的做法是通过数量判断if (!doc.select(.zw_content).isEmpty()) { // 元素存在 }不要依赖.get(0)这类操作容易抛出异常。Q性能如何在 i7-12700K 32GB RAM 环境下实测- 单页连接解析耗时约 800ms ~ 1.5s主要受网络影响- 提取 10 条新闻数据小于 200ms- 内存占用轻量模式约 5–10 MB完整 DOM 树约 20–50 MB建议对静态页面先保存 HTML 文件再离线解析提升调试效率对高频采集任务可引入连接池和重试机制。编写健壮的爬虫不仅仅是写几行选择器那么简单。一个成熟的流程应当包括三个阶段第一阶段分析- 使用 Chrome DevTools 审查目标网页结构- 记录关键元素的选择器路径- 编写最小可运行测试代码验证提取逻辑第二阶段开发- 先实现单条数据提取确保准确性- 再扩展为批量处理加入日志输出- 添加异常捕获区分网络异常与结构变更第三阶段维护- 定期巡检网页结构是否调整- 设置监控报警机制如空结果告警- 保留历史版本以便快速回滚尤其要注意反爬策略的变化。即使目前无需登录未来也可能增加验证码或 IP 限流。提前设计好降级方案和缓存机制才能让系统长期稳定运行。Jsoup 是 Java 工程师手中一把锋利的“小刀”虽不能解决所有爬虫难题但在处理静态 HTML 场景下表现卓越。通过合理运用选择器、妥善处理异常、规范编码习惯我们完全可以构建出高效、可靠的图文采集系统。更重要的是这项技能背后体现的是对 Web 结构的理解力和数据提取的抽象思维——无论技术栈如何演进这些核心能力始终有价值。当你下次面对一个新的信息站点时不妨打开开发者工具试着写下第一条select()表达式迈出自动化采集的第一步。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

本地wordpress环境公众号关键词排名优化

iOS自动化测试终极指南:iOS-Tagent完整使用教程 【免费下载链接】iOS-Tagent iOS support agent for automation 项目地址: https://gitcode.com/gh_mirrors/io/iOS-Tagent iOS自动化测试是移动应用开发中不可或缺的环节,而iOS-Tagent作为基于Web…

张小明 2026/1/12 0:27:55 网站建设

商业网站设计制作公司活动拍摄

大模型Token生成太慢?试试TensorRT优化后的极速推理体验 在今天,当你和一个AI助手对话时,哪怕只是多等了半秒,都可能觉得“这回答怎么这么慢”。用户对响应速度的容忍度越来越低,而大模型却越来越重——百亿、千亿参数…

张小明 2026/1/10 10:32:16 网站建设

怎么做系统软件网站福州网站建设方案外包

Docker容器资源限制:为Miniconda-Python3.10分配GPU与内存配额 在现代AI开发实践中,一个常见的困境是:同一个项目,在开发者的笔记本上运行流畅,到了服务器或同事的机器上却频频报错——依赖版本冲突、CUDA不兼容、内存…

张小明 2026/1/14 2:05:16 网站建设

建站公司成功案例wpml wordpress

如何快速优化Windows系统:3分钟解决卡顿问题 【免费下载链接】ExplorerPatcher 提升Windows操作系统下的工作环境 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Windows系统优化是每个用户都应该掌握的基本技能,它能让你的…

张小明 2026/1/11 12:31:13 网站建设

网站空间免费 优帮云怎么做视频解析的网站

拉罗替尼作为全球首个获批用于治疗NTRK基因融合实体瘤的泛瘤种靶向药物,凭借其独特的疗效优势,在临床实践中为成人和儿童患者带来了显著的生存获益。其真实世界数据进一步验证了其在不同瘤种中的广泛适用性和持久疗效。泛瘤种疗效的广泛覆盖拉罗替尼的疗…

张小明 2026/1/11 12:31:30 网站建设

重庆网站建设推广服务在北京注册个公司要多少钱

空间搜索算法的演化分析与应用 1. 抽象搜索算法的演化分析 抽象搜索算法要发挥作用,关键在于能依据原算子 (U) 的特征值和特征向量得出相关表达式。通过这些表达式,我们可以精确计算特定数值,还能分析其与 (N) 的函数依赖关系,进而得到算法的时间复杂度。 算法的初始条件…

张小明 2026/1/10 10:32:21 网站建设