GithubHelp home page GithubHelp logo

john1688 / 51job Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zouhuigang/51job

0.0 2.0 0.0 73.08 MB

Golang:抓取前程无忧51job的go爬虫网站,支持离线和在线,支持导出简历,采用websocket交双工前后端日志打通,已经改版弃用,可观摩代码学习,仅供参考,获取数据已加密.

Go 84.35% Shell 0.70% JavaScript 0.53% Smarty 14.42%

51job's Introduction

#此项目已经弃用,因为51改版了,参数变了,需要调参数....

项目名:pikapika

时间: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

PikaPika部署说明

软件要求

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/ 爬虫控制台

http://localhost:8088/ 网站

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.