用正则表达式做爬取--java进阶day06
1.String类中与正则有关的方法

replaceAll方法中要填入两个正则表达式,第一个是我们要修改的字符串,第二个则是我们要改成以后的字符串
如下图,出师表中存在很多数字,我们要删去这些数字,就可以使用该方法


2.使用正则表达式做爬取
如图,我们要从这些文字中获取有效的信息,就可以使用正则表达式做爬取,将有效信息搞出来
1.先制定正则表达式,将对应的有效内容写为正则表达式,方便获取

2.使用Pattren类封装对象
Pattern类是专门给正则表达式做封装的类,里面有一个compile方法,可以将我们指定的正则表达式封装成Pattern对象


3.调用matcher方法获取到匹配器对象
封装正则表达式的目的就是为了调用到matcher方法,将要爬取的字符串放入该方法,该方法会返回一个匹配器对象


4.通过匹配器对象调用find和group方法进行爬取
find方法负责查找要爬取的内容里面是否有符合正则表达式,如果有就会返回true


group方法负责将find方法找到的符合正则表达式的内容进行打印输出


需要注意的是,group方法是调用一次就爬取一次,所以要想把所有的内容都爬取出来就要调用多次

而且group方法只能爬取到find找到的内容,因此需要find加group配合使用才能将所有的内容爬取,否则调用多个group,爬取到的也只是find找到一次的内容

当搭配使用时


5.爬取代码优化
实际生活中,我们不知道有多少内容要爬取,也就不知道要调用多少次find和group,但我们可以利用find的一个特点来优化代码
如图,当我们将要爬取的内容修改为两个有效内容,我们调用了3次find方法,第三次时就返回了false

find方法如果找到了就会返回true,没找到有效内容就会返回false,因此我们可以设计一个while循环

用正则表达式做爬取--java进阶day06的更多相关文章
- PYTHON 爬虫笔记九:利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集(实战项目二)
利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集 目标站点分析 今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方 ...
- 微信公众号批量爬取java版
最近需要爬取微信公众号的文章信息.在网上找了找发现微信公众号爬取的难点在于公众号文章链接在pc端是打不开的,要用微信的自带浏览器(拿到微信客户端补充的参数,才可以在其它平台打开),这就给爬虫程序造成很 ...
- 正则表达式_爬取豆瓣电影排行Top250
前言: 利用简单的正则表达式,获取响应内容爬取数据. Part1 正则表达式(Regular Expression) 1.1 简介 正则表达式,又称规则表达式,它是一种文本模式,就是通过事先定义好的一 ...
- 【python爬虫和正则表达式】爬取表格中的的二级链接
开始进公司实习的一个任务是整理一个网页页面上二级链接的内容整理到EXCEL中,这项工作把我头都搞大了,整理了好几天,实习生就是端茶送水的.前段时间学了爬虫,于是我想能不能用python写一个爬虫一个个 ...
- python爬虫+正则表达式实例爬取豆瓣Top250的图片
直接上全部代码 新手上路代码风格可能不太好 import requests import re from fake_useragent import UserAgent #### 用来伪造爬头部信息 ...
- scrapy实例:爬取中国天气网
1.创建项目 在你存放项目的目录下,按shift+鼠标右键打开命令行,输入命令创建项目: PS F:\ScrapyProject> scrapy startproject weather # w ...
- scrapy实例:爬取天气、气温等
1.创建项目 scrapy startproject weather # weather是项目名称 scrapy crawl spidername开始运行,程序自动使用start_urls构造Requ ...
- Python 网络爬虫 004 (编程) 如何编写一个网络爬虫,来下载(或叫:爬取)一个站点里的所有网页
爬取目标站点里所有的网页 使用的系统:Windows 10 64位 Python语言版本:Python 3.5.0 V 使用的编程Python的集成开发环境:PyCharm 2016 04 一 . 首 ...
- Python 爬取的类封装【将来可能会改造,持续更新...】(2020年寒假小目标09)
日期:2020.02.09 博客期:148 星期日 按照要求,我来制作 Python 对外爬取类的固定部分的封装,以后在用 Python 做爬取的时候,可以直接使用此类并定义一个新函数来处理CSS选择 ...
- Python+Requests+Re(正则)爬取某糗事百科图片(数据分析一)
1.博客目前在学习爬虫课程,使用正则表达式来爬取网页的图片信息 2.下面我们一起来回归下Python中的正则使用方式/方法 3.糗事百科图片爬取源码如下: import requestsimport ...
随机推荐
- snpEff安装
下载安装包: wget http://sourceforge.net/projects/snpeff/files/snpEff_v3_6_core.zip 解压安装包: unzip snpEff_v3 ...
- 记录vue和element-ui导出表格到excell
1.安装插件 npm install 'file-saver' npm install 'xlsx' 2.引入插件 import FileSaver from 'file-saver' import ...
- Solution -「Gym 101630J」Journey from Petersburg to Moscow
\(\mathscr{Description}\) Link. 给定含有 \(n\) 个点 \(m\) 条边的带权无向图,一条路径的长度定义为其中前 \(k\) 大的边权和,求 \(1\) 到 ...
- 最新AI智能体开发案例:Coze工作流必备神器!教你用Coze平台搭建「扣子工作流生成神器」智能体!
点击 疯狂老包 > 点击右上角"···" > 关注我 各位小伙伴们,大家好呀!我是疯狂老包.我精心打造的<疯狂AI智能体开发:100个实战案例, 从 入门到精通 ...
- C# 开发工具Visual Studio 介绍
Visual Studio Community (社区版) 这个版本的 Visual Studio 是免费的,具备以前 Professional 版的功能.使用时间有许可限制.它对开源项目和培训.学术 ...
- 我的程序库:HiCSDB
HiCSDB是我写的一个通用程序库,地址:https://github.com/xumingxsh/HiCSDB 该库的目标是简化C#的数据库交互操作. 在这个库中,我将数据库的交互操作抽象为一下几个 ...
- 包装类(Wrapper) 的使用
package com.ch.java2; import org.junit.Test; /* * 包装类的使用: * 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特 ...
- AI编程助手带来的洞察和启发——程序员职业的变革
前言 从chatgpt的横空出世到国内大模型的强势崛起, 从AI只会写诗作画到辅助编程, AI作为新质生产力的重要角色逐渐进入各行各业,为行业带来新的可能性. Cursor.通义灵码这类"A ...
- Docker部署Go+Mysql+Redis
两种方式Docker和Docker Compose部署web项目,相对于Go语言来说,不管是使用docker部署还是直接服务器部署都相当方便,比python要简单很多. 1.Dockerfile结构解 ...
- 具体数学第六章习题选做(genshining)
11.对于 \(n\ge 0\),求以下式子的封闭形式. \[\sum_k(-1)^k{n\brack k} \] 由于 \[\sum{n\brack k}x^k=x^{\overline n} \] ...