#此项目已经弃用,因为51改版了,参数变了,需要调参数....
时间:2015.5.27周五
需求说明:
简历爬虫需求。
定时根据若干关键字对51jobs进行简历抓取,简历数据进行保存,方便HR以离线形式进行检索/查看。Web端展示暂时无需求。
解决方案:
1.模拟加载登陆页面链接,提取隐藏字段,输入用户名/验证码等模拟登陆,保存cookie。
2.模拟加载搜索最终页,更新cookie,提取隐藏字段,构造参数。
3.接2,url携带参数进行模拟加载搜索最终页,得到搜索列表,更新cookie。搜索列表数据信息可存入数据库。
4.接3,提取搜索列表简历链接及隐藏字段,进行模拟加载简历详情页,对数据进行提取存入数据库。
难点:
1.只能单用户登陆,需要写强制下线
2.反爬虫:严格验证报文头
3.反爬虫:Cookie时刻更新
4.反爬虫:页面访问有顺序,每次都会产生隐藏字段
5.反爬虫:速度不能过快,故不能用并发
记录总结:
1.51job爬虫项目中Go语言进阶成功,熟练程度飙升,成为熟悉语言。
2.51job爬虫项目开发完毕,解决各种开发难题,更加熟悉Go语言标准库及网络协议。
3.51job爬虫项目程序成果:自动保存为本地文件,不按关键字去重,按时间/关键字/页数/排位为文件夹进行保存,方便HR直接查看。其次自动去重存入数据库,实现可持续的简历保存。一次可抓取3000人简历,且智能强制下线/容错处理/被封解决方案。
4.数据库数据仍待输出可视化,但HR暂无需求,只需本地文件即可。数据库中数据仍有待挖掘。
皮卡丘,十万伏特! pikapika,振奋人心的口号! 主要对各种招聘网站进行简历爬取,进行存储整理优化。
你有才你就来!
这个项目是因为HR想要看简历 而且还需要很多简历
一期:51job 2016/5
go环境 1.6 beego框架1.6 mysql数据库(建议数据库遵循**-北京时间)
1.设置项目路径
GOPATH="/home/username/path"
2.进入路径拉下项目
cd /home/username/path
git clone https://www.github.com/hunterhug/51job
3.进入51job/sh 运行init.sh补充外围包
./init.sh
4.进入51job/model将51job.sql导入数据库(可以忽略,因为开启服务时自动建表,但是可能出现问题)
6.进入51job/server,运行webserver.go开启爬虫服务,端口默认8099,可以更改
go run webserver.go
或者
go build webserver.go
./webserver
配置账户密码51job/pika/args.go
var companyname=""
var userName = ""
var password = ""
配置文件在51job/cons/cons.go
//数据库配置
const (
//数据库账号:数据库密码@tcp(数据库ip:端口号)/数据库名?编码等
Db = "root:112344@tcp(localhost:3306)/beego_blog?charset=utf8&loc=Local"
//数据库日志
LogPath = "../log/db.log"
//开启日志?
OpenDbLog = false
//用户头像保留地
ImagePath = "../data/img/"
)
默认爬虫日志不保存在本地,如果需要保存在本地,请打开51job/log/log.go
// 保存爬虫日志到本地?
var openlog = false
7.开启小蜜蜂,安装bee工具
go install github.com/beego/bee
cd 51job/web
bee run
如果小蜜蜂安装失败,请按照以下操作
cd 51job/web
go build main.go
./main
配置文件在51job/web/conf/app.conf
httpaddr = "127.0.0.1" //地址
httpport = 8088 //端口
mysqluser = "root"
mysqlpass = "45454"
mysqlurls = "127.0.0.1"
mysqlport = 3306
mysqldb = "51job"
pikapika="127.0.0.1:8099" //爬虫控制台地址
请自行修改
http://localhost:8099/ 爬虫控制台