?) 3、创建可靠的文档结构(html标签包含head 和 body,在head只出现恰当的元素)
一个文档的对象模型
1、文档由多个Elements和TextNodes组成 (以及其它辅助nodes). 2、其继承结构如下:Document继承Element继承Node. TextNode继承 Node. 3、一个Element包含一个子节点集合,并拥有一个父Element。他们还提供了一个唯一的子元素过滤列表。
从一个URL加载一个Document
存在问题 你需要从一个网站获取和解析一个HTML文档,并查找其中的相关数据。你可以使用下面解决方法:
解决方法 使用 Jsoup.connect(String url)方法:
复制代码 代码如下:
Document doc = Jsoup.connect("//www.jb51.net/").get();
String title = doc.title();
说明 connect(String url) 方法创建一个新的 Connection, 和 get() 取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。
Connection 接口还提供一个方法链来解决特殊请求,具体如下:
复制代码 代码如下:
Document doc = Jsoup.connect("//www.jb51.net")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
这个方法只支持Web URLs (http和https 协议); 假如你需要从一个文件加载,可以使用parse(File in, String charsetName) 代替。
从一个文件加载一个文档
问题 在本机硬盘上有一个HTML文件,需要对它进行解析从中抽取数据或进行修改。
办法 可以使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法:
复制代码 代码如下:
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "//www.jb51.net/");
说明 parse(File in, String charsetName, String baseUri) 这个方法用来加载和解析一个HTML文件。如在加载文件的时候发生错误,将抛出IOException,应作适当处理。 baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。 另外还有一个方法parse(File in, String charsetName) ,它使用文件的路径做为 baseUri。 这个方法适用于如果被解析文件位于网站的本地文件系统,且相关链接也指向该文件系统。
使用DOM方法来遍历一个文档
问题 你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构。
方法 将HTML解析成一个Document之后,就可以使用类似于DOM的方法进行操作。示例代码:
复制代码 代码如下:
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "//www.jb51.net/");
Element content = doc.getElementById("content"); Elements links = content.getElementsByTag("a"); for (Element link : links) { String linkHref = link.attr("href"); String linkText = link.text(); }
说明 Elements这个对象提供了一系列类似于DOM的方法来查找元素,抽取并处理其中的数据。具体如下: 查找元素 getElementById(String id) getElementsByTag(String tag) getElementsByClass(String className) getElementsByAttribute(String key) (and related methods) Element siblings: siblingElements(), firstElementSibling(), lastElementSibling();nextElementSibling(), previousElementSibling() Graph: parent(), children(), child(int index)
元素数据 attr(String key)获取属性attr(String key, String value)设置属性 attributes()获取所有属性 id(), className() and classNames() text()获取文本内容text(String value) 设置文本内容 html()获取元素内HTMLhtml(String value)设置元素内的HTML内容 outerHtml()获取元素外HTML内容 data()获取数据内容(例如:script和style标签) tag() and tagName()
操作HTML和文本 append(String html), prepend(String html) appendText(String text), prependText(String text) appendElement(String tagName), prependElement(String tagName) html(String value)
使用选择器语法来查找元素 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素。
方法 可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现:
复制代码 代码如下:
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "//www.jb51.net./");
Elements links = doc.select("a[href]"); //带有href属性的a元素 Elements pngs = doc.select("img[src$=.png]"); //扩展名为.png的图片
Element masthead = doc.select("div.masthead").first(); //class等于masthead的div标签
Elements resultLinks = doc.select("h3.r > a"); //在h3元素之后的a元素
说明 jsoup elements对象支持类似于CSS (或jquery)的选择器语法,来实现非常强大和灵活的查找功能。. 这个select 方法在Document, Element,或Elements对象中都可以使用。且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。 Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。
Selector选择器概述 tagname: 通过标签查找元素,比如:a ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 元素 #id: 通过ID查找元素,比如:#logo .class: 通过class名称查找元素,比如:.masthead [attribute]: 利用属性查找元素,比如:[href] [^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素 [attr=value]: 利用属性值来查找元素,比如:[width=500] [attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/] [attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i)\.(png|jpe?g)] *: 这个符号将匹配所有元素
Selector选择器组合使用 el#id: 元素+ID,比如: div#logo el.class: 元素+class,比如: div.masthead el[attr]: 元素+class,比如: a[href] 任意组合,比如:a[href].highlight ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有p元素 parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素 siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo
伪选择器selectors :lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点)小于n,比如:td:lt(3) 表示小于三列的元素 :gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素 :eq(n): 查找哪些元素的同级索引值与n相等,比如:form input:eq(1)表示包含一个input标签的Form元素 :has(seletor): 查找匹配选择器包含元素的元素,比如:div:has(p)表示哪些div包含了p元素 :not(selector): 查找与选择器不匹配的元素,比如: div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表 :contains(text): 查找包含给定文本的元素,搜索不区分大不写,比如: p:contains(jsoup) :containsOwn(text): 查找直接包含给定文本的元素 :matches(regex): 查找哪些元素的文本匹配指定的正则表达式,比如:div:matches((?i)login) :matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素 注意:上述伪选择器索引是从0开始的,也就是说第一个元素索引值为0,第二个元素index为1等 可以查看Selector API参考来了解更详细的内容
从元素抽取属性,文本和HTML
问题 在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据。
方法 要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的文本,可以使用Element.text()方法 对于要取得元素或属性中的HTML内容,可以使用Element.html(), 或 Node.outerHtml()方法 示例:
复制代码 代码如下:
String html = "
An www.jb51.net link.
";
Document doc = Jsoup.parse(html);//解析HTML字符串返回一个Document实现
Element link = doc.select("a").first();//查找第一个a元素
String text = doc.body().text(); // "An www.jb51.net link"//取得字符串中的文本 String linkHref = link.attr("href"); // "//www.jb51.net/"//取得链接地址 String linkText = link.text(); // "www.jb51.net""//取得链接地址中的文本
String linkOuterH = link.outerHtml(); // "www.jb51.net " String linkInnerH = link.html(); // "www.jb51.net "//取得链接内的html内容
说明 上述方法是元素数据访问的核心办法。此外还其它一些方法可以使用:
Element.id() Element.tagName() Element.className() and Element.hasClass(String className) 这些访问器方法都有相应的setter方法来更改数据.
示例程序: 获取所有链接 这个示例程序将展示如何从一个URL获得一个页面。然后提取页面中的所有链接、图片和其它辅助内容。并检查URLs和文本信息。 运行下面程序需要指定一个URLs作为参数
复制代码 代码如下:
package org.jsoup.www.jb51.nets;
import org.jsoup.Jsoup; import org.jsoup.helper.Validate; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;
import java.io.IOException;
/** * www.jb51.net program to list links from a URL. */ public class ListLinks { public static void main(String[] args) throws IOException { Validate.isTrue(args.length == 1, "usage: supply url to fetch"); String url = args[0]; print("Fetching %s...", url);
Document doc = Jsoup.connect(url).get(); Elements links = doc.select("a[href]"); Elements media = doc.select("[src]"); Elements imports = doc.select("link[href]");
print("\nMedia: (%d)", media.size()); for (Element src : media) { if (src.tagName().equals("img")) print(" * %s: <%s> %sx%s (%s)", src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"), trim(src.attr("alt"), 20)); else print(" * %s: <%s>", src.tagName(), src.attr("abs:src")); }
print("\nImports: (%d)", imports.size()); for (Element link : imports) { print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel")); }
print("\nLinks: (%d)", links.size()); for (Element link : links) { print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35)); } }
private static void print(String msg, Object... args) { System.out.println(String.format(msg, args)); }
private static String trim(String s, int width) { if (s.length() > width) return s.substring(0, width-1) + "."; else return s; } } org/jsoup/www.jb51.nets/ListLinks.java
你可能感兴趣的:(Jsoup解析HTML实例及文档方法详解)
2022-01-13
Eltonpeople
今日启发:Elton:“困境的谷底成为我重建生活的坚实基础。你可能永远不会有我这种失败的经历,但有些失败,在生活中是不可避免的。毫无挫折的生活是不存在的,除非你生活的万般小心,可有些失败还是会发生。失败让我内心安全,是我从通过考试中没有得到过的。失败教会我一些不能用其他方法获得的东西,我发现自己有坚强的意志,比想象中还多的原则,我也发现我拥有朋友——他们的价值远在红宝石之上。从挫折中得到知识将使你
USB (四)基于 STM32 USB的开发
文章目录官网demo基于官网demo考虑的事情usb代码的架构及接口USB数据流程USB中断枚举复位挂起唤醒usbdevice收数据以MSC为例usbdevice发数据以MSC为例应用处理流程其他描述符官网demo软件代码在官网是存在的:STSW-STM32046开发板对应的是:en.stm32_f105-07_f2_f4_usb-host-device_lib\Project\USB_Devic
CVE-2005-4900:TLS SHA-1 安全漏洞修复详解
Nova_CaoFc
运维日常 技术博文分享 安全 linux 服务器 运维
前言在信息安全日益重要的当下,任何微小的加密弱点都可能被攻击者利用,从而导致数据泄露、流量劫持或更严重的业务中断。本文将结合实际环境中常见的Nginx配置示例,深入剖析CVE-2005-4900(TLS中使用SHA-1哈希算法)的危害,并提供完整、可操作的修复流程。一、什么是CVE-2005-4900漏洞CVE-2005-4900定位于TLS协议中使用SHA-1作为消息认证和签名哈希算法的安全漏洞
洛谷二分查找题目详解
方俊涵
算法 c++ 数据结构
B3881[信息与未来2015]拴奶牛题目描述有n头奶牛,有k个木桩,每个木桩有一个位置,一个木桩上只能拴一头奶牛。由于奶牛好斗,所以在拴奶牛的时候,要求距离最近的奶牛的距离尽可能大。例如n=4,k=6,木桩的位置为0,3,4,7,8,9,此时为下图。OllOOllOOO034789有许多种拴牛方案,例如:0,3,4,9:此时最近距离为1(3,4之间);0,3,7,9:此时最近距离为2。输入格式三
Spring7个事务传播行为和5个隔离级别
青秋.
spring java 数据库
传播行为事务传播行为是为了解决业务层方法之间互相调用的事务问题。事务方法A被事务方法B调用,就要指定事务如何传播,是两者共用同一事务还是另起一个新事务。图解spring中七种事务传播行为终于有人讲明白了_spring七种事务传播行为-CSDN博客1.REQUIRED@Transactional注解默认使用就是这个事务传播行为。如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。2
王财贵:发起读经教育的初心
dcfac6b15823
编者按:本文节录自季谦先生《学》、《只要你明白》两场演讲及《走在时代前端的教育》一文的相关内容,均已经先生修订定稿,题目「我的读书经历及读经推广之初心」为编者所拟。又按(季谦先生按语)前几天我在交流网上发表的一段话或可作为二十年的总结与后续的愿望:读经人在心志上,既本于尊重经典,且长期受经典之熏陶,必有经典的意识,即能开放心胸,赏识同侪,涵纳异见,相观而善,敦厚笃实,单纯宽简,不忘初心,从容中道。
内存受限编程:从原理到实践的全面指南
景彡先生
C++进阶 c++ 缓存
在嵌入式系统、物联网设备、移动应用等场景中,内存资源往往极为有限。如何在内存受限的环境中设计高效、稳定的程序,是每个开发者都可能面临的挑战。本文将从硬件原理、操作系统机制、算法优化到代码实现技巧,全面解析内存受限编程的核心技术。一、内存受限环境概述1.1典型内存受限场景场景可用内存范围典型应用8位单片机几KB-64KB传感器节点、简单控制器32位嵌入式系统64KB-512MB智能家居设备、工业控制
C# 函数memcpy和memmove的使用和模拟实现(详解)
muzi_liii
c# c语言
内存函数memcpy函数memmove函数memcpy函数memcpy——内存拷贝(负责不重叠的内存拷贝)函数定义:void*memcpy(void*destination,constvoid*source,size_tnum);//从source的位置开始复制num个字节个数到destination指向的内存中//num代表要拷贝的字节数//返回的是detination的起始地址memcpy的使
Win10电脑连接手机热点全攻略:从基础操作到进阶技巧
nntxthml
电脑 智能手机 windows
Win10电脑连接手机热点全攻略:从基础操作到进阶技巧在移动办公场景日益普及的今天,掌握电脑连接手机热点的方法已成为职场人的必备技能。本文通过图文结合的方式,系统讲解Win10系统连接手机热点的完整流程,并提供网络优化、安全设置等进阶技巧,帮助读者高效解决紧急用网需求。一、基础操作篇:三步完成热点连接(1)手机端设置:开启移动WiFi基站不同品牌手机设置路径略有差异,但核心步骤一致:安卓系统:设置
【橘子分布式】Thrift RPC(编程篇)
当年明日
分布式 分布式 rpc 网络协议
一、简介之前我们研究了一下thrift的一些知识,我们知道他是一个rpc框架,他作为rpc自然是提供了客户端到服务端的访问以及两端数据传输的消息序列化,消息的协议解析和传输,所以我们今天就来了解一下他是如何实现这些功能,并且如何在实际代码中使用。我们需要搭建环境。1.安装Thrift作用:把IDL语言描述的接口内容,生成对应编程语言的代码,简化开发。我们已经介绍了在mac如何使用brew安装了。2
stm32继电器使用方法
会编程的小孩
stm32 嵌入式硬件 单片机
介绍部分继电器:这里是一个5v的一共有6个接口:左边DC+和DC-和IN接口右边NOCOMNCDC+:注意接5vDC-:接地gnd记得和5v电源形成回路IN:接stm32信号口我这里接的是A0口(后面代码)NO:这是一个常开端:意思就是和com一直是断开,直到IN接高电平才连接,低电平就还是断开COM:公共端和NO,NC都有接口NC:常闭端:意思就是和com一直是连接,直到IN接高电平才断开,低电
LINDDUN威胁建模 原理和架构及案例
hao_wujing
人工智能
大家读完觉得有帮助记得关注和点赞!!!LINDDUN威胁建模框架是专注于隐私风险分析的系统化方法论,其名称源自七类隐私威胁的首字母缩写(Linking,Identifying,Non-repudiation,Detectability,Disclosure,Unawareness,Non-compliance)。以下从原理、架构及典型案例三方面展开深度解析:一、核心原理:隐私威胁分类与数据流分析1
详细介绍一下OpenAI的API使用方法
alankuo
人工智能
以下是详细的OpenAIAPI使用方法:获取API密钥访问OpenAI官方网站(https://platform.openai.com/)并注册账号.登录后,点击右上角的个人资料名称或图标,选择“ViewAPIKeys”.在API密钥页面,点击“Createnewsecretkey”来创建新的API密钥,将其妥善保存,因为此密钥仅在生成时显示一次.安装OpenAI库在命令行中使用pipinstal
基于R、Python的Copula变量相关性分析及AI大模型应用
梦想的初衷~
环境 气象 人工智能 r语言 python
在工程、水文和金融等各学科的研究中,总是会遇到很多变量,研究这些相互纠缠的变量间的相关关系是各学科的研究的重点。虽然皮尔逊相关、秩相关等相关系数提供了变量间相关关系的粗略结果,但这些系数都存在着无法克服的困难。例如,皮尔逊相关系数只能反映变量间的线性相关,而秩相关则更多的适用于等级变量。大多数情况下变量间的相关性非常复杂,而且随着变量取值的变化而变化,而这些相关系数都是全局性的,因此无法提供变量间
光纤HDMI vs 普通HDMI线:区别对比及适用场景全解析
1.引言:HDMI线的重要性HDMI(HighDefinitionMultimediaInterface)作为目前最主流的高清音视频传输接口,广泛应用于显示器、电视、投影仪、游戏主机、PC等设备。然而,市面上的HDMI线种类繁多,尤其是光纤HDMI和普通铜芯HDMI,它们的性能差异大,适用场景也不同。本文将从传输原理、带宽、距离、抗干扰、价格等多个维度对比两者的区别,并给出选购建议,帮助你在不同场
DSC(Display Stream Compression) 显示流压缩技术解析
DSC(DisplayStreamCompression)是一种由VESA(视频电子标准协会)开发的视觉无损显示压缩技术,主要用于解决高分辨率、高刷新率显示设备的数据传输带宽问题。DSC技术核心特点视觉无损压缩:虽然是有损压缩,但人眼几乎无法察觉质量损失低延迟:压缩/解压延迟极低(通常<1行扫描时间)固定比率压缩:支持3:1、2:1和1.5:1等固定压缩比实时处理:能够实时压缩和解压视频流DSC工
唯品会有隐藏优惠券吗?唯品会优惠劵去哪里领取
高省_飞智666600
唯品会内部优惠券,唯品会内部优惠券公众号唯品会内部优惠券app,唯品会内部优惠券返利平台本文来自于【高省】粉丝果果投稿!唯品会优惠券领取方法:1、打开手机桌面,点击桌面“唯品会”应用图标2、进入唯品会手机主页,在主页左上角点击“频道”功能选项。3、进入频道功能界面,点击下方“个人中心”选项。4、进入个人中心界面后,点击“签到领券”功能5、进入签到有礼的界面,点击界面“签到领奖励”按钮。6、界面显示
USB Hub 和 USB Dock 技术解析
TESmart碲视
KVM切换器领域相关技术 网络 电脑 计算机外设 智能硬件 物联网 游戏
"笔记本只有两个USB口,外接键盘鼠标后就没法插U盘了…"这样的困扰正在数百万办公族日常上演。面对接口荒,市场给出了两种截然不同的解决方案——轻巧便携的USBHub与功能强大的USBDock扩展坞,但究竟哪种才是你的Mr.Right?本文将从工作原理、协议支持、应用场景三个维度展开深度解析:Hub如同USB接口的"分线器",通过简单的信号复制实现多个USB端口基础扩展;Dock则是系统级的"外设中
HDMI、DisplayPort、USB-C 不同版本对比:带宽、刷新率、协议版本详解
TESmart碲视
KVM切换器领域相关技术 电脑 计算机外设 智能硬件 物联网
一、接口概览:HDMI、DP接口、USB-C到底是干嘛的?接口名称主要功能常见设备支持传输内容HDMI(High-DefinitionMultimediaInterface高清多媒体接口)专为高清音视频传输设计电视、显示器、显卡、游戏主机视频+音频DP(DisplayPort显示端口)高性能视频输出接口显卡、显示器、扩展坞视频+音频USB-C(带DPAlt模式支持DP替代模式)多功能数据传输接口笔
12月21日,第②期"教育行走一起写吧"挑战300天活动第143天文章汇总
小尘老师
12月21日,第②期"教育行走一起写吧"挑战300天活动第143天。我们的任务:每天一记录(500字以上自由写作),每月一精品(2000字以上主题作文)我们的标准动作:写文(推荐)+挑战群中接龙(字数、题目+链接)+“教育行走一起写吧”小打卡圈打卡(字数、标题、内容)。每月精品文还需要登记在石墨文档12月份主题:“一起写吧”的故事特别提醒:打卡和接龙要求加上文章字数。例编号省份姓名名称(字数)题目
DTU轮询通信有哪些隐患?功耗、容量与响应效率全解析
门思科技
技术分享 网络 物联网 人工智能 服务器 科技
在物联网(IoT)应用中,DTU(数据传输单元)扮演着“数据中继桥梁”的角色,用于采集仪表或传感器数据并上传到云平台。DTU的通信模式直接决定了系统的整体效率与可扩展性,其中轮询(Polling)模式虽简单,但却存在多项隐患。1.功耗高,电池应用受限轮询模式要求DTU长时间处于接收状态,持续监听来自平台的下发指令。即便没有实际数据传输任务,DTU也无法进入低功耗休眠状态,导致能耗居高不下。这对于依
Python 桌面版 数独游戏(一版)
香蕉可乐荷包蛋
# 数独 python 游戏 java
设计思路详解:Python桌面版数独游戏1.功能需求分析构建一个9x9的数独游戏界面。支持玩家手动输入数字。提供两个按钮:“重新开始本局”:恢复当前棋盘到初始状态(保留原始数字)。“生成新棋局”:生成一个新的随机数独题目。使用标准库实现,无需额外安装。2.技术选型使用tkinter:Python标准GUI库,适合小型桌面应用。使用random和copy:用于生成数独题目和深拷贝原始题目。采用回溯算
【vLLM 学习】Encoder Decoder Multimodal
HyperAI超神经
vLLM vLLM KV缓存 大语言模型 推理加速 内存管理 开源项目 在线教程
vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/*在线运行vLLM入门教程:零基础分步指南源码examples/offline_inference/encoder_decoder_multimodal.py#SPDX-License-Identifier:Apach
React 常用 Hooks
1、useState状态管理useState是ReactHooks中最基础的状态管理Hook,语序在函数组件中声明和管理状态。使用方法:constinitCount=0;const[count,setCount]=useState(initCount);setCount(2)setCount(preCount=>preCount+1)注意:在v16中,状态更新是同步的,但在事件回调中,会进行批处理
Linux常用命令——touch 命令详解
Darrich
Linux命令大全 linux 运维 服务器 ubuntu centos kylin ssh 1024程序员节
Linux常用命令——touch详解命令介绍:touch命令是Linux系统中的一个非常基础但也非常有用的命令,它主要用于创建空文件和更新文件的访问时间和修改时间。基本语法:touch[选项]文件名常用选项和参数:-a:只更新文件的访问时间,不改变修改时间。touch-amyfile.txt-m:只更新文件的修改时间,不改变访问时间touch-mmyfile.txt-c或--no-create:如
LLM系统性学习完全指南(初学者必看系列)
GA琥珀
LLM 学习 人工智能 语言模型
前言这篇文章将系统性的讲解LLM(LargeLanguageModels,LLM)的知识和应用。我们将从支撑整个领域的数学与机器学习基石出发,逐步剖析自然语言处理(NLP)的经典范式,深入探究引发革命的Transformer架构,并按时间顺序追溯从BERT、GPT-2到GPT-4、Llama及Gemini等里程碑式模型的演进。随后,我们将探讨如何将这些强大的基础模型转化为实用、安全的应用,涵盖对齐
什么是高防 IP?从技术原理到实战部署的深度解析
快快网络-三七
业务安全 服务器 ip 快快网络 高防IP 快快云 弹性云 云计算
目录前言一、高防IP的定义与核心价值二、高防IP的技术原理与架构2.1流量牵引技术2.2流量清洗引擎2.3回源机制三、高防IP的核心防护技术详解3.1DDoS攻击防御技术3.2高防IP的弹性带宽设计四、实战:基于Linux的高防IP环境配置4.1配置高防IP回源白名单4.2配置TCP抗攻击参数4.3高防IP与Nginx的配合配置五、高防IP的选型与部署建议总结前言在网络攻击日益频繁的今天,DDoS
Copula 回归与结构方程模型:R 语言构建多变量因果关系网络
技术点目录专题一、R及Python语言及相关性研究初步专题二、二元Copula理论与实践(一)专题三、二元Copula理论与实践(二)【R语言为主】专题四、Copula函数的统计检验与选择【R语言为主】专题五、高维数据与VineCopula【R语言】专题六、正则VineCopula(一)【R语言】专题七、正则VineCopula(二)【R语言】专题八、时间序列中的Copula【R语言】专题九、Co
六项精进
琪琪兒
公司:宁波市镇海承迪文具有限公司【日精进打卡第146天】一、【知~学习】1:《六项精进》诵读0遍共30遍2:《大学》诵读1遍共221遍【经典名句分享】曾经以为“老去”是很遥远的事情,突然发现“年轻”已经是很久以前的事了…时光好不经用抬眼已然半生!!很多付出,可能永远都没有回报,但依旧乐意全情付出,是要为了给自己内心一个交代。二:【行及践行】1、修身(对自己)1.1吃好吃的1.2喝好多水1.3走了好
《故事写作大师班》阅读笔记
莫如斯
从今天起,开始在微信读书上阅读《故事写作大师班》。每天晨读一个小时,细细来读,约需10天。在阅读过程中,发现有感触、有收获的段落,以及他人分享的有价值的内容,先在这里记录下来,等整本读完,再作一个总结。《故事写作大师班》作者约翰。特鲁比,是好莱坞首屈一指的故事写作顾问,约翰。特鲁比作家工作室创始人。该书是他30年故事创作与教学经验的精华,包含故事写作的整套秘诀,帮且创作者找到对的方法,写出好的故事
Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取 HtmlExtractor 精准抽取 信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
java编程思想 -- 多态
百合不是茶
java 多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
[自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
storm 自定义 日志文件
商人shang
storm cluster logback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
php 文件操作
aichenglong
PHP 读取文件 写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
MySQL的btree索引和hash索引的区别
AILIKES
数据结构 mysql 算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
TDD实践(二)
bijian1013
java TDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
[MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项  
jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
java 线程弹球小游戏
CrazyMizzz
java 游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
hadoop jps出现process information unavailable提示解决办法
daizj
hadoop jps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
ios UILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
完全手动建立maven骨架
eksliang
java eclipse Web
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
简单工厂设计模式
hm4123660
java 工厂设计模式 简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
map hbase reduce Hfile path实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
jsp web tomcat 编码问题
王新春
tomcat jsp pageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi