对于爬虫的学习
本地爬取
package MyApi.a08regexdemo;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo03 {public static void main(String[] args) {//要求:找出里面所有javaxxString str="Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11"+"因为这两个是长期支持的版本,下一个长期支持的版本是Java17" +"相信在不久的未来Java17也会逐渐登上历史舞台";// method1(str);//1.获取正则表达式的对象Pattern pattern = Pattern.compile("Java\\d{0,2}");//2.获取文本匹配器的对象Matcher m = pattern.matcher(str);//3.利用循环获取while(m.find()){String s=m.group();System.out.println(s);}}private static void method1(String str) {//获取正则表达式的对象Pattern pattern = Pattern.compile("Java\\d{0,2}");//获取文本匹配器的对象Matcher m = pattern.matcher(str);//拿着文本匹配器从头开始读取,寻找是否有满足规则的字串//如果没有,方法返回false//如果有,返回true,在底层记录字串的起始索引和结束索引+1boolean b = m.find();//方法底层会根据find方法记录的索引进行字符串的截取//subString(起始索引,结束索引):包头不包尾//会把截取的小串进行返回String s1= m.group();System.out.println(s1);//第二次调用find的时候,会继续读取后面的内容//读取到第二个满足要求的字串,方法会继续返回true//并把第二个字串的起始索引和结束索引+1,进行记录boolean b1 = m.find();String s2=m.group();System.out.println(s2);}
}
网络爬取
package MyApi.a08regexdemo;import javax.print.DocFlavor;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo04 {public static void main(String[] args) {/*需求:把连接:http://m.sengzan.com/jiaoyu/29104.html?ivk_sa=105883i中的所有身份证号码都爬取出来* *///创建一个url对象URL url=new URL("http://m.sengzan.com/jiaoyu/29104.html?ivk_sa=105883i");//连接上这个网址URLConnection conn=url.openConnection();//创建一个对象去读取网络中的数据BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())) ;String line;//获取正则表达式对象String regex="[1-9]\\d{17}";Pattern pattern=Pattern.compile(regex);while((line=br.readLine())!=null){Matcher matcher=pattern.matcher(line);while(matcher.find()){System.out.println(matcher.group());}}br.close();}
}
package MyApi.a08regexdemo;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Regexdemoo5 {public static void main(String[] args) {/** 需求:把下面的文本中的座机号码,邮箱,手机号,热线都爬取出来* 来黑马程序员学习Java* 手机号: 18512516758,18512508907* 或者联系邮箱:boniu@itcast.cn,* 座机电话:01036517895,010-9895256* 邮箱:boniu@itcast.cn,* 热线电话:400-618-9090,400-618-4000,4006184000,4006189090 */String s="来黑马程序员学习Java" +"手机号: 18512516758,18512508907" +"或者联系邮箱:boniu@itcast.cn," +"座机电话:01036517895,010-9895256" +"邮箱:boniu@itcast.cn," +"热线电话:400-618-9090,400-618-4000,4006184000,4006189090";String regex1="1[3-9]\\d{9}|(\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2})"+"|(0\\d{2,3-?[1-9]\\d{4,9})|" +"(400-?[1-9]\\d{2}-?[1-9]\\d{3})";Pattern pattern=Pattern.compile("regex1");Matcher m = pattern.matcher(s);while(m.find()){String str= m.group();System.out.println(str);}}
}

package MyApi.a08regexdemo;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Regexdemo06 {public static void main(String[] args) {String str="java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11"+"因为这两个是长期支持的版本,下一个长期支持的版本是Java17" +"相信在不久的未来Java17也会逐渐登上历史舞台";//需求1String regex1="((?i)Java)(?=8|11|17)";
//需求2String regex2="((?i)Java)(8|11|17)";String regex3="((?i)Java)(?:8|11|17)";//需求3String regex4="((?i)Java)(?!8|11|17)";Pattern pattern=Pattern.compile(regex4);Matcher matcher = pattern.matcher(str);while(matcher.find()){String s=matcher.group();System.out.println(s);}}
}
贪婪爬取和非贪婪爬取

package MyApi.a08regexdemo;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Regexdemo07 {public static void main(String[] args) {String str="Java自从95年问世以来abbbbbbbbbbbbaaaaaaaaaaaaaaaaaa,经历了很多版本,目前企业中用的最多的是Java8和Java11"+"因为这两个是长期支持的版本,下一个长期支持的版本是Java17" +"相信在不久的未来Java17也会逐渐登上历史舞台";/** 贪婪爬取:在爬取数据的时候尽可能的多获取数据* 非贪婪爬取:在爬取数据的时候尽可能的少获取数据* java当中默认是贪婪爬取* 如果我们在数量词+ * 的后面加上问号,那么此时就是非贪婪爬取*///需求1String regex="ab+";//需求2String regex1="ab+?";Pattern pattern=Pattern.compile(regex);Matcher matcher = pattern.matcher(str);while(matcher.find()){System.out.println(matcher.group());}}
}
相关文章:
对于爬虫的学习
本地爬取 package MyApi.a08regexdemo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexDemo03 {public static void main(String[] args) {//要求:找出里面所有javaxxString str"Java自从95年问世以来,经历了…...
【学习笔记】开源计算机视觉库OPENCV学习方案
本文中,我们试图提供一些学习OpenCV的详细和实用资源,这些资源包括基础知识、进阶技巧以及实践项目,旨在帮助初学者和进阶学习者更好地掌握和使用OpenCV库。 一、学习资源 官方文档:OpenCV的官方文档是学习OpenCV的最佳起点。它包…...
LVS负载均衡集群基础概念
目录 一、集群 1、集群概述 1.1 什么是集群 1.2 集群系统扩展方式 1.2.1 Scale UP(纵向扩展): 1.2.2 Scale OUT(横向扩展): 1.2.3 区别 1.3 分布式系统 1.4 分布式与集群 1.5 集群设计原则 1.6 …...
pwn学习笔记(5)--格式化字符串漏洞(未完全完成)
pwn学习笔记(5)–格式化字符串漏洞 前言:由于条件有限,因此对于该漏洞的学习不算很多, 格式化字符串漏洞基础: 格式化字符串介绍: 格式化字符串函数可以接收可变数量的参数࿰…...
HTML标签之表单标签,web开发实例教程
标签语义化: 语义和默认样式的区别: 默认样式是浏览器设定的一些常用tag的表现形式;语义化的主要目的就是让大家直观的认识标签和属性的用途和作用; 标签语义化作用: 当只有HTML页面时,没有CSS…...
数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】
前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言4 第四章 数据库安全性4.1 数据库安全性定义4.…...
网站维护页面404源码
网站维护页面404源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 下载地址 https://www.qqmu.com/2407.html...
CSS的文本样式属性值,web开发难点
什么是css块元素? 块级元素是独占一行显示的。它的兄弟元素必定不会与其在同一行中(除非脱离了文档流)。通俗点来说,就是块元素(block element)一般是其他元素的容器元素 戳这里领取完整开源项目:【一线大厂前端面试题…...
springboot+jsp汽车配件管理系统idea maven 项目lw
springbootweb汽车配件销售业绩管理系统服务于汽车配件公司业务,实现了客户管理,主要负责对客户相关数据的增删改查方面、渠道管理,主要对渠道信息也就是设备的供应商渠道信息进行管理、项目管理,主要是一些项目信息的记录与整理、销售数据管…...
计算机网络-网络安全(二)
1.应用层安全协议: S-HTTP或SHTTP(Sec HTTP),安全超文本传输协议,是HTTP扩展,使用TCP的80端口。HTTPS:HTTPSSL,使用TCP的443端口。和TLS(传输层安全标准)是双…...
Flutter App代码混淆
Flutter 应用混淆 Flutter 应用的混淆非常简单,只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。 flutter build apk –obfuscate --split-debug-info 命令需要指定输出调试文件的位置,该命令会生成一个符号映…...
pandas中apply函数的坑——错误信息Must provide ‘func‘ or tuples of ‘(column, aggfunc)的解决办法
近期需要获取某网站上的文章标题,并对文章来源以及不同来源的文章数量进行分析。已通过爬虫完成对文章标题、日期和文章链接的爬取,并存入pandas中的dataframe中,准备进行下一步的分析。 该网站一般情况下,文章标题前两个字是信息…...
《操作系统真相还原》读书笔记二:环境搭建 xshell连接virtualbox
修改 sshd_config 使用 vi /etc/ssh/sshd_config命令进入sshd服务配置,键盘输入i进行编辑,将监听端口、监听地址前的 # 号去除,开启允许远程登录,开启使用用户名密码来作为连接验证。修改完成,按一下Esc,输…...
CSS盒模型居中方法,大学生必备
96道前端面试题 下面给大家分享96道前端面试题 1,一些开放性题目 自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势。项目介绍如何看待前端开发?平时是如何学习前端开发的?未来三到五年的…...
【Golang星辰图】构建健壮应用的秘籍:探索Go语言中最强大的测试工具库
精进单元测试:探秘Go语言中流行的测试框架和工具 前言 提高软件质量和稳定性是每个开发人员的目标之一。而单元测试是保证代码质量的重要手段之一,可以帮助我们检查代码是否按预期工作,并提早发现潜在的bug。Go语言提供了丰富的测试框架和工…...
刷题笔记day27-回溯算法3
39. 组合总和 var path []int var tmp []int var result [][]int// 还是需要去重复,题目中要求的是至少一个数字备选的数量不同。 // 所以需要剪枝操作,右边的要比左边的> func combinationSum(candidates []int, target int) [][]int {// 组合问题pa…...
【项目】Boost 搜索引擎
文章目录 1.背景2.宏观原理3.相关技术与开发环境4. 实现原理1.下载2.加载与解析文件2.1获取指定目录下的所有网页文件2.2. 获取网页文件中的关键信息2.3. 对读取文件进行保存 3.索引3.1正排与倒排3.2获取正排和倒排索引3.3建立索引3.3.1正排索引3.3.2倒排索引 4.搜索4.1 初始化…...
vue3 (六)自定义指令
1.定义自定义指令: app.directive(pos,{mounted(el,bunding){el.style[bunding.arg] bunding.value px;}, updated(el,bunding){el.style[bunding.arg] bunding.value px;} }) app.directive(指令名,{ mounted(el,bunding){}, updated(el,bunding){} }) 如果只…...
vite、mode如果为production打包后 .env.production 中 VITE_API_DOMAIN变量作为API地址吗
Vite 是一个现代化的前端构建工具,它使用 .env 文件来管理不同环境下的环境变量。通过为不同的环境(如开发环境、生产环境等)设置不同的 .env 文件,你可以控制这些环境中的变量,这些变量在构建时会被注入到项目中 当你…...
静态时序分析:SDC约束命令set_fasle_path详解
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 目录 指定建立/保持时间检查 指定上升/下降沿 指定时序路径起点 删除虚假路径 添加注释 简单使用 写在最后 在之前的文章中,我们讨论了如何使…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
