JavaWeb正则表达式3

Java爬虫

正则表达式爬取规则:

1.把感兴趣的内容换成 (.*?)

2.找边界,找到能唯一标识的字符串边界,前面或后面的东西不要了换成  .*?   边界留着。

3.边界不删

4.选择爬取位置

 

原html文档

<li class="subject-item">
    <div class="pic">
      <a class="nbg" href="https://book.douban.com/subject/10554308/" onclick="moreurl(this,{i:'1',query:'',subject_id:'10554308',from:'book_subject_search'})">
        <img class="" src="https://img1.doubanio.com/view/subject/s/public/s24514468.jpg" width="90">
      </a>
    </div>
    <div class="info">
      <h2 class="">
        
  
  <a href="https://book.douban.com/subject/10554308/" title="白夜行" onclick="moreurl(this,{i:'1',query:'',subject_id:'10554308',from:'book_subject_search'})">

    白夜行

      </h2>
      <div class="pub">
        
  
  [日] 东野圭吾 / 刘姿君 / 南海出版公司 / 2013-1-1 / 39.50元

      </div>


  <div class="star clearfix">
        <span class="allstar45"></span>
        <span class="rating_nums">9.1</span>

    <span class="pl">
        (292596人评价)
    </span>
  </div>

    <p>东野圭吾万千书迷心中的无冕之王
周刊文春推理小说年度BEST10第1名
本格推理小说年度BEST10第2名
《白夜行》是东野圭吾迄今口碑最好的长篇杰作,具备... </p>


      <div class="ft">
          
  <div class="collect-info">
  </div>


          <div class="cart-actions">
            
         
    <span class="buy-info">
      <a href="https://book.douban.com/subject/10554308/buylinks">
        纸质版 29.60元
      </a>
    </span>

          </div>
         
      </div>

    </div>
  </li>

经正则表达式修改后

<li class="subject-item">.*?src="(.*?)".*? <a href="(.*?)" title="(.*?)".*?<div class="pub">(.*?)</div>.*?<span class="rating_nums">(.*?)</span>.*?<p>(.*?)</p>

 

爬虫测试

package com.day1015.java;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class T2 {
    public static void main(String[] args) throws Exception{
        URL url = new URL("https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4");
        InputStream is = url.openStream();

        String text = new BufferedReader(new InputStreamReader(is)).lines().collect(Collectors.joining("\n"));
        is.close();
        String regex = "<li class=\"subject-item\">.*?src=\"(.*?)\".*? <a href=\"(.*?)\" title=\"(.*?)\".*?<div class=\"pub\">(.*?)</div>.*?<span class=\"rating_nums\">(.*?)</span>.*?<p>(.*?)</p>";

        Pattern pattern = Pattern.compile(regex,Pattern.DOTALL);
        Matcher matcher = pattern.matcher(text);
        while(matcher.find()){
            String img = matcher.group(1).trim();
            String href = matcher.group(2).trim();
            String title = matcher.group(3).trim();
            String pub = matcher.group(4).trim();
            String rate = matcher.group(5).trim();
            String info = matcher.group(6).trim();

            System.out.println(img);
            System.out.println(href);
            System.out.println(title);
            System.out.println(pub);
            System.out.println(rate);
            System.out.println(info);
            System.out.println("--------------------------------------------------");

        }

    }
}

测试结果

https://img3.doubanio.com/view/subject/s/public/s29053580.jpg
https://book.douban.com/subject/4913064/
活着
余华 / 作家出版社 / 2012-8-1 / 20.00元
9.4
《活着(新版)》讲述了农村人福贵悲惨的人生遭遇。福贵本是个阔少爷,可他嗜赌如命,终于赌光了家业,一贫如洗。他的父亲被他活活气死,母亲则在穷困中患了重病,福贵...
--------------------------------------------------
https://img1.doubanio.com/view/subject/s/public/s24514468.jpg
https://book.douban.com/subject/10554308/
白夜行
[日] 东野圭吾 / 刘姿君 / 南海出版公司 / 2013-1-1 / 39.50元
9.1
东野圭吾万千书迷心中的无冕之王
周刊文春推理小说年度BEST10第1名
本格推理小说年度BEST10第2名
《白夜行》是东野圭吾迄今口碑最好的长篇杰作,具备...
--------------------------------------------------
https://img3.doubanio.com/view/subject/s/public/s1103152.jpg
https://book.douban.com/subject/1084336/
小王子
[法] 圣埃克苏佩里 / 马振聘 / 人民文学出版社 / 2003-8 / 22.00元
9.0
小王子是一个超凡脱俗的仙童,他住在一颗只比他大一丁点儿的小行星上。陪伴他的是一朵他非常喜爱的小玫瑰花。但玫瑰花的虚荣心伤害了小王子对她的感情。小王子告别小行...
--------------------------------------------------
https://img9.doubanio.com/view/subject/s/public/s29179365.jpg
https://book.douban.com/subject/26923390/
长夜难明
紫金陈 / 云南人民出版社 / 2017-1 / 42.00元
8.5
麦家、鹦鹉史航、马伯庸、雷米、周浩晖都推崇的作家
社会派悬疑推理大神紫金陈“推理之王”系列第3部
改编网络剧《沉默的真相》,廖凡、白宇主演,即将重磅上线
第...
--------------------------------------------------
https://img3.doubanio.com/view/subject/s/public/s29793550.jpg
https://book.douban.com/subject/25955474/
坏小孩
紫金陈 / 湖南文艺出版社 / 2018-7-1 / 54.00元
7.3
麦家、鹦鹉史航、马伯庸、雷米、周浩晖都推崇的作家
社会派悬疑推理大神紫金陈“推理之王”系列第2部
改编网络剧《隐秘的角落》,秦昊、王景春主演,现已重磅上线
...
--------------------------------------------------
https://img1.doubanio.com/view/subject/s/public/s1070959.jpg
https://book.douban.com/subject/1007305/
红楼梦
[清] 曹雪芹 著、高鹗 续 / 人民文学出版社 / 1996-12 / 59.70元
9.6
《红楼梦》是一部百科全书式的长篇小说。以宝黛爱情悲剧为主线,以四大家族的荣辱兴衰为背景,描绘出18世纪中国封建社会的方方面面,以及封建专制下新兴资本主义民主...
--------------------------------------------------
https://img3.doubanio.com/view/subject/s/public/s1727290.jpg
https://book.douban.com/subject/1770782/
追风筝的人
[美] 卡勒德·胡赛尼 / 李继宏 / 上海人民出版社 / 2006-5 / 29.00元
8.9
12岁的阿富汗富家少爷阿米尔与仆人哈桑情同手足。然而,在一场风筝比赛后,发生了一件悲惨不堪的事,阿米尔为自己的懦弱感到自责和痛苦,逼走了哈桑,不久,自己也跟...
--------------------------------------------------
https://img3.doubanio.com/view/subject/s/public/s27237850.jpg
https://book.douban.com/subject/6082808/
百年孤独
[哥伦比亚] 加西亚·马尔克斯 / 范晔 / 南海出版公司 / 2011-6 / 39.50元
9.2
《百年孤独》是魔幻现实主义文学的代表作,描写了布恩迪亚家族七代人的传奇故事,以及加勒比海沿岸小镇马孔多的百年兴衰,反映了拉丁美洲一个世纪以来风云变幻的历史。...

 


版权声明:本文为weixin_44853310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。