百度前端技术学院是一个为大学生创办的免费的前端技术实践、分享、交流平台。由百度校园招聘组、百度校园品牌部、百度前端技术部以及多个百度的前端团队联合创办。学院组织了一批百度在职工程师,精心编写了数十个实践编码任务,将技术知识点系统有机地串联在各个充满趣味与挑战的任务中,同学们通过实际地编码练习来掌握知识,再辅以互相评价、学习笔记等方式,加深对于学习内容的理解。在过去的三年中,百度前端技术学院累积吸引了上万名同学参加,并且有数十名同学在学习后,顺利加入了百度,成为了百度的前端工程师。

肖广

百度资深研发工程师,前糯米运营平台前端技术负责人。7年前端工作经验,曾供职于阿里巴巴,在百度期间先后担任过百度选车、百度文库、FEX性能小组、大搜无线转码等团队的技术负责人,熟悉前端工程化、前端性能优化、NodeJS等方向。成功主导过3亿级PV服务的全栈架构的改造和迁移工作,有较丰富的NodeJS大并发经验。

共发布 5个任务,已经有 642名学生在这里学习上课
课程结束

难度:普通时间:大约需要1

407人在学习该课程,有115人已经完成该课程

网页抓取分析服务系列之一(基础分析)

任务目的 体会数据的封装 快速学习新工具的的能力 熟悉phantomjs的基础用法 任务描述 安装phantomjs2.0,并查看webpage相关的API http://phantomjs.org/api/webpage/。 编写一个task.js脚本,参考官网的includeJs方法,实现根据传入的参数(关键字),抓取百度第一页对应该关键字的搜索结果。 将结果输出为json string回显。 回显的格式为 { code: 1, //返回状态码,1为成功,0为失败 msg: '抓取成功', //返回的信息 word: '示例关键字', /…

课程结束

难度:普通时间:大约需要1

123人在学习该课程,有75人已经完成该课程

网页抓取分析服务系列之二(设备模拟)

任务目的 学会分析并借鉴其他工具的运行机制 学习更多phatomJS的配置 任务描述 观察chrome开发者工具中device toolbar,切换到不同的device,查看浏览器BOM数据有何变化 把device toolbar中不同的device名对应的ua和尺寸信息记录下来,保存为配置文件 在任务1的基础上,增加一个参数,表示device信息,taskjs中,解析该参数并从配置文件找到对应的ua和尺寸,完成设置后再抓取 在结果中也增加一个device字段保存传入的设备名 任务注意事项 chrome device toolbar不了解可以百度一下看看使用方法,在conso…

课程结束

难度:进阶时间:大约需要3

51人在学习该课程,有40人已经完成该课程

网页抓取分析服务系列之三(服务封装)

任务目的 学习NodeJS HTTP模块 学习NodeJS和本地进程的互动 学习NodeJS和mongodb的交互 任务描述 安装nodejs和mongodb 利用nodejs的HTTP模块封装一个node服务,监听8000端口,接受一个参数(关键字),http模块示例参考如下: var http = require("http"); http.createServer(function(request, response) { console.log('request received'); response.write…

课程结束

难度:进阶时间:大约需要2

34人在学习该课程,有24人已经完成该课程

网页抓取分析服务系列之四(数据交互)

任务目的 学习前后端的交互 学习静态文件服务器的实现 对于结果的二次处理 任务描述 开发对应的前端界面,使用技术栈不限,越简单越好。输入包含一个输入框(输入关键字),一个下拉列表(选择对应的UL),一个提交按钮。 关键字输入做不能为空的校验,输入后发起异步请求,请求上阶段的服务。 在上阶段的服务中增加一个数据二次处理功能,对于返回的结果中有缩略图片的,下载图片到本地,并确保下载后的图片能被访问。 入库后,返回信息给前端,前端展示对应的抓取结果,以表格展示,图片加载本地已下载的图片 任务注意事项 静态文件服务器需用nodejs实现,也是8080端口,可以使用现成框架(推荐使用koa2)…

课程结束

难度:困难时间:大约需要3

27人在学习该课程,有15人已经完成该课程

网页抓取分析服务系列之五(并发控制)

任务目的 任务的并行控制逻辑设计 socket.io的使用 任务描述 在4的基础上前端增加一个输入选项(页码),表面需要抓取的页数,另外设备输入值由下拉框改为多选框。 单个用户可以选择多个设备的模拟任务,并且每个设备需要抓取多页。 服务器端根据选择的情况,生成任务待执行队列,每个phantomjs任务只执行一次抓取。同时允许nodejs调起最大5个phantomjs的进程。 前后端改为通过web socket通信,使用socket.io库,每完成一个抓取,将结果追加到页面中。同时在页面的最上方显示当前的进度(完成数/总任务数)。 任务注意事项 phantomjs进程的最大5个并发需要…