小工具知识网

当前位置: 首页 > 行业知识 > 对于爬虫的学习

行业知识

对于爬虫的学习

2026-11-01 09:16:31 来源:互联网转载

本地爬取

package MyApi.a08regexdemo;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexDemo03 {    public static void main(String[] args) {       //要求:找出里面所有javaxx        String 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,在底层记录字串的起始索引和结束索引+1        boolean 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也会逐渐登上历史舞台";     //需求1        String regex1="((?i)Java)(?=8|11|17)";//需求2        String regex2="((?i)Java)(8|11|17)";        String regex3="((?i)Java)(?:8|11|17)";        //需求3        String 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当中默认是贪婪爬取       * 如果我们在数量词+ * 的后面加上问号,那么此时就是非贪婪爬取*/        //需求1        String regex="ab+";        //需求2        String regex1="ab+?";        Pattern pattern=Pattern.compile(regex);        Matcher matcher = pattern.matcher(str);        while(matcher.find()){            System.out.println(matcher.group());        }    }}
    • 高速稳定云服务器25元起
    • 上一篇:揭秘文件背后的未知领域与真相,探寻真相之旅开启

      下一篇:被骗怎么查对方服务器?