软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

【后端二】李彦欣

  • 李彦欣
  • 2022-10-24
  • 0

后端第二次培训-爬虫

一. HTML

超文本标记语言

  • 结构标签:
根标签<html></html>
头部标签<head></head>
文档/网页标题<title></title>
文档主体<body></body>
  • 常见标签及其属性:
超链接标签:<a href="">超链接标签</a>
标题标签:<h1>一级标题</h1>
段落标签:<p>段落标签</p>
图像标签:<img src="URL" />

二. Java方法

1.方法编写

修饰符 返回值类型 方法名(参数类型 参数名){

​ 方法体

​ return 返回值;

}

p.s.方法的参数可以为空;返回值类型为void时不需要写return语句

public static int max(int a,int b){
    int result;
    if(a>b)
        result = a;
    else
        result = b;

    return result;
}

2.方法调用

静态方法:类名+方法名(参数)

int m = max(i,j);

非静态方法:对象.方法名(参数)

n = m.toUpperCase();

三. 正则表达式

是一种字符串匹配的模式

  • 普通字符:包括大小写字母,数字及符号

  • 非打印字符

​ 换行符:\n

​ 回车符:\r

​ 空白符:\s

  • 特殊字符:

    字符串结尾位置:$

    匹配开始位置:^

    匹配前面零次或多次:\*

    匹配前面一次或多次:\+

    匹配前面零次或一次:\?

  • 限定符

​ 匹配前面的子表达式零次或一次:?

​ 匹配前面的子表达式一次或多次:+

​ 匹配前面的子表达式零次或多次:*

四. Jsoup与爬虫

1.Jsoup

新建maven项目+导入jsoup依赖

  • 连接下载html文档
Document document = Jsoup.connect("https://www.aixiaxsw.com/105/105503").get();
  • css选择器选取内容
Element menu = document.body().select("dl dd");
Element as = menu.select("a[href]");
  1. 标签选择器 标签名div {color: red}

  2. 类选择器 .类名 {color: red} class="类名"

    多类名:class="类名1 类名2"

  3. id选择器 #id名 {}

    只能调用一次

  4. 子元素选择器:#father #p1{color:red} 父元素与子元素用空格隔开

  5. 相邻选择器:#lv+div{color:red}

  6. 群组选择器:h1,div,p{color:red}

  • 将爬取内容写入文档
fileOut.write(chapterContent.getBytes());

五.作业

  1. 一开始pom.xml出现了unknow问题,导入依赖后版本号变红,reload就好了;

  2. 顺着录屏理解意思后敲了一遍又不断修改爬出了笔趣阁的小说,但是当改变menuUrl后出现了404 not found 的问题,一开始还以为是遇到了反爬虫,就开始各种伪装浏览器,添加头信息,方向搞错了死磕好久都没结果,最后请教群里大佬才解决...当然也让我学到了,如果过了很久自己解决不了这个问题不妨换个方向,或者向他人请教,这样就能少走好多弯路,少浪费一点时间,也就可能在ddl前交上作业了哈哈哈。当然也不能放弃自己探索,在自己尝试的时候也获取了不少其它方面的知识啦。

  3. 排版问题使用了string类的replace方法,把每个句号替换成句号+换行符+六个空格符号;在题目前加# ,在章节名前加## ,这样在md中排版就能更舒服。

李彦欣
李彦欣
© 2025 软件园学生在线
Theme by Wing