当前位置: 首页 > news >正文

对于爬虫的学习

本地爬取

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)–格式化字符串漏洞 ​ 前言:由于条件有限,因此对于该漏洞的学习不算很多, 格式化字符串漏洞基础: 格式化字符串介绍: ​ 格式化字符串函数可以接收可变数量的参数&#xff0…...

HTML标签之表单标签,web开发实例教程

标签语义化: 语义和默认样式的区别: 默认样式是浏览器设定的一些常用tag的表现形式;语义化的主要目的就是让大家直观的认识标签和属性的用途和作用; 标签语义化作用: 当只有HTML页面时,没有CSS&#xf…...

数据库-第四/五章 数据库安全性和完整性【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言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 目录 指定建立/保持时间检查 指定上升/下降沿 指定时序路径起点 删除虚假路径 添加注释 简单使用 写在最后 在之前的文章中,我们讨论了如何使…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...