https://github.com/threadnew/encycproject
一个爬取宠物百科内容的后台demo。
https://github.com/threadnew/encycproject
solr springboot-mybatis springboot2 vue-router vuejs2 webmagic
Last synced: 4 months ago
JSON representation
一个爬取宠物百科内容的后台demo。
- Host: GitHub
- URL: https://github.com/threadnew/encycproject
- Owner: ThreadNew
- License: apache-2.0
- Created: 2019-06-18T06:55:30.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T20:23:50.000Z (about 3 years ago)
- Last Synced: 2025-01-11T04:44:16.395Z (about 1 year ago)
- Topics: solr, springboot-mybatis, springboot2, vue-router, vuejs2, webmagic
- Language: JavaScript
- Homepage:
- Size: 9.31 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EncycProject
> EncycProject项目使用现在流行的前后端分离技术;此项目创作目的是实践。利用此项目快速搭建环境和快速入门。该项目的主线是建立宠物社区网站。目前该项目完成第一个模块:宠物百科;剩余模块陆续开发中。(此项目可以变更,第一模块耦合度低)
---
### 项目模块
- **宠物百科**:利用爬虫爬取相关数据,建立中心库,搜索引擎使用的solr7
- **模块的项目演示**
>如下图 [图示链接](resource/img/project.gif)

- 敬请期待。。。
---
## 1 项目的体系结构
### 1.1 后端
>如下图所示
```
D:.
│ pom.xml
│
│
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─threadnew
│ │ │ │ EncycprojectApplication.java
│ │ │ │
│ │ │ ├─controller
│ │ │ │ EncycController.java :宠物百科的控制器
│ │ │ │ index.java
│ │ │ │
│ │ │ ├─dao
│ │ │ │ EncycDao.java
│ │ │ │
│ │ │ ├─pojo
│ │ │ │ Encyc.java
│ │ │ │ EncycResult.java
│ │ │ │ EncycSolr.java
│ │ │ │ Page.java
│ │ │ │
│ │ │ ├─service
│ │ │ │ EncycService.java
│ │ │ │
│ │ │ ├─solr :sorl的实现类
│ │ │ │ SolrUtil.java
│ │ │ │
│ │ │ └─webmagic : 有关爬虫的实现类
│ │ │ EncycPageProcessor.java
│ │ │ EncycPipeline.java
│ │ │ SpikeFileCacheQueueScheduler.java
│ │ │
│ │ └─resources
│ │ │ application.yml
│ │ │
│ │ ├─static
│ │ └─templates
│ └─test
│ └─java
│ └─com
│ └─threadnew
│ EncycprojectApplicationTests.java
│
└
```
>>其中 **webmagic**目录下的文件是关于爬虫的实现;**solr** 目录下的文件是关于solr的实现。
### 1.2 前端
>如下图所示
> 其中上图红色标记此处要在开发环境中配置代理,否则跨域无法访问。
## 2 技术选型
### 2.1 后台
- springboot2
- Mybatis
- solr
- webMagic(Java的爬虫框架)
- druid
### 2.2 前台(待续)
- vue2.js
- webPack
- vue-router
- axios
- vant (有赞的前端的ui框架)
---
## 3 项目搭建
### 3.1 框架整合
#### 3.1.1 pom.xml
```
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.5.RELEASE
com.threadnew
encycproject
0.0.1-SNAPSHOT
encycproject
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.0.1
org.springframework.boot
spring-boot-devtools
runtime
true
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-configuration-processor
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
us.codecraft
webmagic-core
0.7.3
us.codecraft
webmagic-extension
0.7.3
com.alibaba
druid-spring-boot-starter
1.1.17
org.springframework.boot
spring-boot-starter-data-solr
org.springframework.boot
spring-boot-maven-plugin
```
#### 3.1.2 applicaton.yml
```
spring:
data:
solr:
host: http://localhost:8080/solr
datasource:
name: encycproject
type: com.alibaba.druid.pool.DruidDataSource
#druid相关配置
druid:
#监控统计拦截的filters
filters: stat
driver-class-name: com.mysql.cj.jdbc.Driver
#基本属性
url: jdbc:mysql://127.0.0.1:3306/animal?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 1234
#配置初始化大小/最小/最大
initial-size: 1
min-idle: 1
max-active: 20
#获取连接等待超时时间
max-wait: 60000
#间隔多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-runs-millis: 60000
#一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20
server:
port: 8100
```
#### 3.1.3 前端的axios的代理
>在config文件夹下的index.js中的proxyTable下添加如下代码
```
'/apis':{
target: 'http://192.168.43.103:8100/', // 后台api
changeOrigin: true, //是否跨域
// secure: true,
pathRewrite: {
'^/apis': '' //需要rewrite的,
}
}
```
> 未完待续
---
## 4 项目效果
#### 4.1 爬虫项目图:
**爬虫数据**
**数据库数据**
**前端**
>待续
## 5 说明
### 项目
> 此项目读者可以下载在此基础上重新编写,或者利用此项目的环境进行别的项目开发。