后端第二次培训-爬虫
一. 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]");
-
标签选择器 标签名div {color: red}
-
类选择器 .类名 {color: red} class="类名"
多类名:class="类名1 类名2"
-
id选择器 #id名 {}
只能调用一次
-
子元素选择器:#father #p1{color:red} 父元素与子元素用空格隔开
-
相邻选择器:#lv+div{color:red}
-
群组选择器:h1,div,p{color:red}
- 将爬取内容写入文档
fileOut.write(chapterContent.getBytes());
五.作业
-
一开始pom.xml出现了unknow问题,导入依赖后版本号变红,reload就好了;
-
顺着录屏理解意思后敲了一遍又不断修改爬出了笔趣阁的小说,但是当改变menuUrl后出现了404 not found 的问题,一开始还以为是遇到了反爬虫,就开始各种伪装浏览器,添加头信息,方向搞错了死磕好久都没结果,最后请教群里大佬才解决...当然也让我学到了,如果过了很久自己解决不了这个问题不妨换个方向,或者向他人请教,这样就能少走好多弯路,少浪费一点时间,也就可能在ddl前交上作业了哈哈哈。当然也不能放弃自己探索,在自己尝试的时候也获取了不少其它方面的知识啦。
-
排版问题使用了string类的replace方法,把每个句号替换成句号+换行符+六个空格符号;在题目前加# ,在章节名前加## ,这样在md中排版就能更舒服。