## 项目以多年未维护 使用技术解决方案也均已落后
## 若您对技术有着狂热的追求,我期待您能加入我的团队
## 无论你是高手还是菜鸟,只要你想在技术深耕我都欢迎您
## 坐标:上海 宝山区
## 以下是岗位需求,若您感兴趣欢迎投递简历到邮箱:shengqq@eagersoft.cn (记得备注来源是 github开源项目 )
> Android岗位
1、熟练掌握Java开发技术,具备扎实的编程基础;
2、熟练掌握Android各类UI组件、图像动画、网络、文件系统等模块的使用和开发;
3、熟练掌握Android的API,理解Android的体系结构;
4、熟练运用市面上主流的开源库,如Glide、RxJava等;
5、熟悉Android中界面绘制、后台运行、数据存储等的原理;
6、了解Jectpack相关组件;
7、了解Android内存管理机制,并能进行优化;
8、拥有一定的Android自绘技能;
9、拥有良好的代码规范,文档能力,Git使用经验;
> IOS岗位
1、有扎实的Swift基础,了解应用基本算法/数据结构,了解基础设计模式;
2、熟悉iOS SDK开发环境及相关开发工具;
3、熟悉RxSwift、Sqlite;
4、熟练掌握Autolayout、xib、storyboard;
5、具有良好编码风格,有较强的独立工作能力和团队合作精神;
> 前端-小程序方向
1、掌握HTML5、CSS3、ES6,JS基础扎实;
2、掌握微信小程序开发原理、开发流程、接口组件、验证授权等,能独立开发微信小程序;
3、熟练使用canvas;
4、有完整的微信小程序项目经验;
5、有字节跳动/百度/支付宝/快应用等小程序开发经验者优先。
> 前端-web方向
1、熟练Ajax、Node.js、NPM常用的开发体系原理,完成数据绑定、业务交互等;
2、熟练VUE、Bootstrap、jQuery等框架,懂得灵活运用;
3、对JS模块化和通用化有一定设计经验的;
4、有良好的团队合作精神;沟通能力强、有责任心、做事细致;
## FreeBook v2.0 去除网络爬虫 使用api请求数据
### 引言
>基于MVP模式开发的免费下载小说app,采用最流行框架搭建,干货多多
>集中最近流行的框架和思维以一种简单易理解的方式实现,方便大家学习
>至于需求什么的我就不说了,对于准备毕业项目的同学学会这个你会觉得毕业项目非常easy
>[api帮助文档](http://mylance.top/index.html)
>[APK下载 免费下载小说 学习的同时 还能拿到不少的干货](http://fir.im/FreeBook)
>由于使用的美国服务器 国内访问会比较慢 所有api仅使用于学习 当然也欢迎大家赞助 换个国内好点的服务器啦
## 这里有那么一群志同道合的人在等你加入 QQ群:[173999252](https://jq.qq.com/?_wv=1027&k=41Zve9A)
![](image/qq.jpg)
###首先让大家看看效果 No picture you say a jb? gif录制效果不好 将就点看
![首页](image/image_1.gif) ![书库](image/image_2.gif) ![搜索](image/image_3.gif) ![下载](image/image_4.gif) ![下载](image/image_5.gif)
###还有就是项目的结构 看看我是怎么玩转MVP的
![项目结构](image/image_6.png)
###用到的主流框架
- RxJava+Retrofit2+Okhttp+RxCache 实现API数据请求以及缓存(缓存不区分GET&POST 缓存策略可根据自己要求修改)
- RxJava+jsoup+RxCache 实现HTMl页面爬虫数据的请求以及缓存 缓存实现与API一致 不需要另写逻辑
- glide加载图片
- LCRapidDevelop 下拉刷新 状态页 RecyclerView适配器 RecyclerView加载动画 等等感兴趣的自行了解 [传送门](https://github.com/80945540/LCRapidDevelop)
- bga-banner 首页的Banner实现无限循环 还不错 集成简单
###功能点
- 首页banner 以及推荐数据 根据后台接口更新(总要有点自己可控的元素嘛 比如加个广告什么的 哈哈 比如说)
- 书库类别 以及类别的HTML地址等数据 通过后台接口控制 (如果哪天我觉得这个网站的资源不是很丰富 我可以很任性的直接在后台换一个)
- 数据缓存 请求HTML网页再从网页上抓取想要的数据其实相对API来说耗时会比较大 缓存就显得非常重要了
- 文件下载统一管理 并且调用系统支持的程序打开文件
###首先详细讲解一下RxJava+Retrofit2+Okhttp+RxCache的使用 五部曲
第一步:导包
```
compile 'io.reactivex:rxjava:1.1.8'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
compile 'com.github.VictorAlbertos.RxCache:core:1.4.6'
```
第二步:新建API接口
```
/**
* API接口
* 因为使用RxCache作为缓存策略 所以这里不需要写缓存信息
*/
public interface MovieService {
//获取书库分类信息
@GET("freebook/typeconfigs.json")
Observable<List<BookTypeDto>> getBookTypes();
//获得首页banner以及书籍数据
@GET("freebook/home.json")
Observable<HomeDto> getHomeInfo();
//获得搜索标签
@GET("freebook/search_lable.json")
Observable<List<String>> getSearchLable();
}
```
第三步:新建缓存接口(Html爬虫共用)
```
/**
* 缓存API接口
* @LifeCache设置缓存过期时间. 如果没有设置@LifeCache , 数据将被永久缓存理除非你使用了 EvictProvider, EvictDynamicKey or EvictDynamicKeyGroup .
* EvictProvider可以明确地清理清理所有缓存数据.
* EvictDynamicKey可以明确地清理指定的数据 DynamicKey.
* EvictDynamicKeyGroup 允许明确地清理一组特定的数据. DynamicKeyGroup.
* DynamicKey驱逐与一个特定的键使用EvictDynamicKey相关的数据。比如分页,排序或筛选要求
* DynamicKeyGroup。驱逐一组与key关联的数据,使用EvictDynamicKeyGroup。比如分页,排序或筛选要求
*/
public interface CacheProviders {
//获取书库对应类别列表 缓存时间 1天
@LifeCache(duration = 7, timeUnit = TimeUnit.DAYS)
Observable<Reply<List<BookInfoListDto>>> getStackTypeList(Observable<List<BookInfoListDto>> oRepos, DynamicKey userName, EvictDynamicKey evictDynamicKey);
//获取书库分类信息缓存数据 缓存时间 永久
Observable<Reply<List<BookTypeDto>>> getBookTypes(Observable<List<BookTypeDto>> oRepos, DynamicKey userName, EvictDynamicKey evictDynamicKey);
//获取首页配置数据 banner 最热 最新 缓存时间7天
@LifeCache(duration = 7, timeUnit = TimeUnit.DAYS)
Observable<Reply<HomeDto>> getHomeInfo(Observable<HomeDto> oRepos, DynamicKey userName, EvictDynamicKey evictDynamicKey);
//获取搜索标签 缓存时间7天
@LifeCache(duration = 7, timeUnit = TimeUnit.DAYS)
Observable<Reply<List<String>>> getSearchLable(Observable<List<String>> oRepos, DynamicKey userName, EvictDynamicKey evictDynamicKey);
//获取书籍详情 缓存时间7天
@LifeCache(duration = 7, timeUnit = TimeUnit.DAYS)
Observable<Reply<BookInfoDto>> getBookInfo(Observable<BookInfoDto> oRepos, DynamicKey userName, EvictDynamicKey evictDynamicKey);
}
```
第四步:新建retrofit抽象类
```
/**
*封装一个retrofit集成0kHttp3的抽象基类
*/
public abstract class RetrofitUtils {
private static Retrofit mRetrofit;
private static OkHttpClient mOkHttpClient;
/**
* 获取Retrofit对象
*
* @return
*/
protected static Retrofit getRetrofit() {
if (null == mRetrofit) {
if (null == mOkHttpClient) {
mOkHttpClient = new OkHttpClient.Builder().build();
}
//Retrofit2后使用build设计模式
mRetrofit = new Retrofit.Builder()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
资源推荐
资源详情
资源评论
收起资源包目录
基于MVP模式开发的带缓存网络爬虫,采用最流行框架搭建,干货多多.zip (338个子文件)
app-release.apk 2.72MB
gradlew.bat 2KB
image_5.gif 4.9MB
image_2.gif 4.33MB
image_1.gif 2.94MB
image_4.gif 2.26MB
image_3.gif 609KB
.gitignore 97B
.gitignore 7B
.gitignore 7B
build.gradle 1KB
build.gradle 646B
build.gradle 627B
settings.gradle 41B
gradlew 5KB
gradle-wrapper.jar 52KB
SpringView.java 42KB
JCVideoPlayer.java 30KB
BaseQuickAdapter.java 22KB
SmartTabLayout.java 21KB
JCVideoPlayerStandard.java 20KB
ProgressActivity.java 18KB
SmartTabStrip.java 16KB
BaseViewHolder.java 14KB
RecoveryActivity.java 14KB
TagCloudView.java 13KB
Bundler.java 13KB
BookDownloadListAdapter.java 10KB
JCMediaManager.java 9KB
Reflect.java 7KB
HomeRecommendFragment.java 6KB
HomeDownloadFragment.java 6KB
RecoveryHandler.java 6KB
RecoveryStore.java 6KB
StackInfoFragment.java 6KB
HttpData.java 6KB
SharedPreferencesCompat.java 6KB
Recovery.java 6KB
BookInfoActivity.java 5KB
HomeSearchFragment.java 5KB
RotationHeader.java 5KB
HomeStackFragment.java 5KB
RecoveryUtil.java 5KB
BookInfoDto.java 5KB
RecoveryService.java 5KB
AliFooter.java 4KB
AliHeader.java 4KB
DefaultHeader.java 4KB
BaseActivity.java 4KB
TasksManagerModel.java 4KB
JCFullScreenActivity.java 4KB
JCResizeTextureView.java 4KB
MyApplication.java 4KB
SearchListFragment.java 4KB
TasksManagerDBController.java 4KB
TasksManager.java 3KB
MeituanHeader.java 3KB
RecoverySilentSharedPrefsUtil.java 3KB
Utils.java 3KB
RecoverySharedPrefsUtil.java 3KB
SearchLabelFragment.java 3KB
ActivityStackCompat.java 3KB
BookTypeDto.java 3KB
SmartTabIndicationInterpolator.java 3KB
JCVideoPlayerSimple.java 3KB
BookClassActivity.java 3KB
HomeTabActivity.java 3KB
ProgressSubscriber.java 3KB
CacheProviders.java 3KB
BookInfoListDto.java 2KB
MeituanFooter.java 2KB
RecoveryActivityLifecycleCallback.java 2KB
RotationFooter.java 2KB
ActivityManagerDelegate.java 2KB
BaseSectionQuickAdapter.java 2KB
DefaultFooter.java 2KB
MyDialogDownload.java 2KB
FragmentPagerItems.java 2KB
TasksManagerDBOpenHelper.java 2KB
FragmentPagerItem.java 2KB
FragmentController.java 2KB
FragmentStatePagerItemAdapter.java 2KB
SearchPresenter.java 2KB
StackInfoFragmentPresenter.java 2KB
FragmentPagerItemAdapter.java 2KB
FragmentControllerSearch.java 2KB
ViewPagerItemAdapter.java 2KB
BookInfoGridAdapter.java 2KB
MyDialogHint.java 2KB
SearchLablePresenter.java 2KB
AcFunHeader.java 2KB
AcFunFooter.java 2KB
BaseMultiItemQuickAdapter.java 2KB
MyScrollview.java 1KB
RecoveryComponentHook.java 1KB
SearchModel.java 1KB
BaseHeader.java 1KB
BaseFooter.java 1KB
Utils.java 1KB
BookService.java 1KB
共 338 条
- 1
- 2
- 3
- 4
资源评论
JJJ69
- 粉丝: 6353
- 资源: 5918
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功