Java爬虫-WebCollector的通用式Web应用爬虫
上文再续,我在为一个全民爬虫的理念前进着。最近,项目比较空闲,所以有时间向前迈进了,哈哈哈。
Web应用搭建
Web应用搭建无非就那些,首先你地选择整个页面的所以前端技术点,我这边选的是当下比较大众的,但是我却又不太熟悉的(为了学习更多的技术)
HTML/CSS:HTML+Bootstrap4(Bootstrap,大学时用过,做了一个PC和APP共用的网页,当时来说比较?的了,现在再看,十分陌生)
Js:Vue.js(轻量级,容易上手,重要的是:我没用过)
后端:SpringBoot+WebCollector+MyBatis+MySQL(上一篇说过,资源也贴了)
既然要搭建Web应用,那么我们少不了的是要有页面,所以项目的文件目录要先建好,如下
然后要与后端对接,而且需要看到网页,那么Tomcat就少不了,还有一些配置,如下:
application.properties
server.port=8886
server.tomcat.uri-encoding=UTF-8
mybatis.mapper-locations=classpath:mapper/*.xml
#默认的位置是src/main/webapp 这里可以更换,比如/page/ 那么目录就变成了src/main/webapp/pages
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
maven管理文件pom.xml
<!-- JSTL for JSP spring boot搭建web项目,跳转到jsp一定要添加下面的jar包,否则出现跳转的时候,变成下载的功能,保存该页面-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
然后在index.jsp中随便写点Hello World就可以通过http://localhost:8886/index.jsp访问了
全民爬虫之CSS选择器爬虫
具体的效果图如下:
主要还是对应之前爬电影院的代码进行一个改造的,让所有的参数都由前端输入,这样就可以一次性爬多个不同的网页了(名字:我要一步一步往上爬,比较low,请忽略)
目前代码写的比较low,没有封装,没有递归,所以只支持5层深度的爬虫,10个字段的爬取,而且由于数据库的限制,每个字段不得多于1000字
数据库设计如下:
代码段如下:
public void get(RequestDto dto) throws Exception {
seeds.clear();
this.requestDto = dto;
this.depth = requestDto.getDepth();
if (1 < depth){
addSeed(requestDto.getPage(), "depth1");
}else {
addSeed(requestDto.getPage(),"content");
}
this.start(depth);
}
@MatchType(types = "depth1")
public void visitDepth1(Page page, CrawlDatums next) throws Exception {
if (StringUtils.isEmpty(requestDto.getLinks1())){
throw new Exception("depth1 can not be null!")