楼主: houyunhuang
1513 0

[程序分享] 找工作的季节,写了个小程序抓取海投宣讲会信息 [推广有奖]

  • 0关注
  • 21粉丝

已卖:2198份资源

教授

4%

还不是VIP/贵宾

-

威望
0
论坛币
14065 个
通用积分
234.2000
学术水平
32 点
热心指数
48 点
信用等级
23 点
经验
328 点
帖子
949
精华
0
在线时间
1282 小时
注册时间
2012-10-27
最后登录
2022-12-14

楼主
houyunhuang 发表于 2016-9-11 11:44:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
       最近是找工作的黄金时间,我想大多数和我一样即将毕业的学生会每天刷海投网,每天刷应届生校园招聘模块。这真是一件痛苦的事情,不同地点,不同学校不停的看,并且哪些看过,哪些没看最后都混成一团了。


      本着学习的精神,我就尝试用R语言作为工具,去抓取海投网和应届生的宣讲会信息,然后制作成表格,方便打印出来做记录,时刻提醒自己什么时候有宣讲会,什么时候要开始投递简历了等等。当然我的小程序还不是很健壮,有些功能还不能实现。

      罗里吧嗦说了半天,回到正题,我写的这个函数可抓取海投网上19个省区任意页面的宣讲会信息,并返回一个tibble(改进版的data.frame),这个tibble有七列,分别是宣讲学校、公司名称、举办时间、举办点、发布时间、点击率、举办当天是星期几。

      我姑且把这个函数叫做ht(prov = "湖北", page = 1 ),有两个参数,第一个是prov省区,支持中文,默认是湖北,第二个参数page是指定抓取指定省区的前多少页(即海投页码)。

      下面还是上代码:
  1. ht <- function(prov='湖北',page=1)
  2. {
  3.   require(dplyr,quietly =TRUE)
  4.   loc <- switch(prov,
  5.                 '湖南' = 'cs',
  6.                 '湖北' = 'wh',
  7.                 '北京' = 'bj',
  8.                 '上海' = 'sh',
  9.                 '广东' = 'gz',
  10.                 '陕西' = 'xa',
  11.                 '四川' = 'cd',
  12.                 '江苏' = 'nj',
  13.                 '安徽' = 'hf',
  14.                 '山东' = 'jn',
  15.                 '天津' = 'tj',
  16.                 '河南' = 'zz',
  17.                 '浙江' = 'hz',
  18.                 '重庆' = 'cq',
  19.                 '辽宁' = 'sy',
  20.                 '福建' = 'fz',
  21.                 '江西' = 'nc',
  22.                 '吉林' = 'cc',
  23.                 '黑龙江' = 'he')
  24.   ht_tb <- data.frame()
  25.   for(i in 1:page){
  26.     page0 <- paste('page',i,sep = '-')
  27.     url <- paste('http://xjh.haitou.cc',loc,page0,sep = '/')
  28.     cat(url,'\n')
  29.     html <-  rvest::html_session(url)
  30.     tb_list <- html %>% rvest::html_table()
  31.     tb  <-  tb_list[[1]] %>%
  32.       lapply(iconv,from='UTF-8',to='gbk') %>%
  33.       tibble::as_tibble()
  34.     names(tb) <- c('宣讲学校','公司名称','举办时间','举办地点','发布时间','点击率','星期')
  35.     web <- rvest::html_nodes(html,"td:nth-child(2)")  %>%
  36.            iconv(from='UTF-8',to='gbk')
  37.     univ <- stringr::str_replace_all(stringr::str_extract(web, ":(.*)
  38. "),':|
  39. ','')
  40.     tb[[1]] <- univ
  41.     ht_tb <- rbind(ht_tb,tb)
  42.   }
  43.   date <- stringr::str_extract(ht_tb[[3]],'[0-9]{4}-[0-9]{2}-[0-9]{2}\\s[0-9]{2}:[0-9]{2}')
  44.   wenk <- lubridate::wday(date, label = TRUE, abbr = FALSE)
  45.   levels(wenk) <- c('星期日',
  46.                     '星期一',
  47.                     '星期二',
  48.                     '星期三',
  49.                     '星期四',
  50.                     '星期五',
  51.                     '星期六')
  52.   ht_tb[[3]] <- readr::parse_datetime(date)
  53.   ht_tb[[7]] <- wenk
  54.   invisible(ht_tb)
  55. }
复制代码
举个例子:我想抓取湖北省前10页的宣讲会信息,那么代码为,
  1. tb <- ht('湖北', page=10)
复制代码
  1. http://xjh.haitou.cc/wh/page-1
  2. http://xjh.haitou.cc/wh/page-2
  3. http://xjh.haitou.cc/wh/page-3
  4. http://xjh.haitou.cc/wh/page-4
  5. http://xjh.haitou.cc/wh/page-5
  6. http://xjh.haitou.cc/wh/page-6
  7. http://xjh.haitou.cc/wh/page-7
  8. http://xjh.haitou.cc/wh/page-8
  9. http://xjh.haitou.cc/wh/page-9
  10. http://xjh.haitou.cc/wh/page-10
复制代码
      可以看到程序在运行,信息保存在tb中。我们可以查看一下:
  1. tb
  2. # A tibble: 200 × 7
  3.        宣讲学校                                 公司名称            举办时间
  4. *         <chr>                                    <chr>              <dttm>
  5. 1  华中科技大学 官方推荐京东方科技集团股份有限公司华中大 2016-09-12 15:00:00
  6. 2      武汉大学     官方推荐江岸区学而思教育培训学校武大 2016-09-12 18:30:00
  7. 3  华中科技大学   官方推荐江岸区学而思教育培训学校华中大 2016-09-12 18:30:00
  8. 4      武汉大学             上海倾听信息技术有限公司武大 2016-09-11 09:30:00
  9. 5  华中科技大学       官方杭州微米网络科技有限公司华中大 2016-09-11 10:00:00
  10. 6  华中科技大学                               华为华中大 2016-09-11 13:30:00
  11. 7  华中科技大学                   招商银行深圳分行华中大 2016-09-11 14:30:00
  12. 8  华中科技大学         飞利浦医疗科技中国影像基地华中大 2016-09-11 18:30:00
  13. 9  华中科技大学                       热门烽火通信华中大 2016-09-11 18:30:00
  14. 10 武汉理工大学           官方乐其网络科技有限公司理工大 2016-09-12 10:00:00
  15. # ... with 190 more rows, and 4 more variables: 举办地点 <chr>, 发布时间 <chr>,
  16. #   点击率 <chr>, 星期 <ord>
复制代码

      海投网默认是每页显示20条记录,10页就是200条,我们的函数已经帮我抓取回来了。

       我知道我的函数还很粗糙,有些地区,如湖南,学校信息匹配会有个别不对,主要是海投网页源代码不一致。

      下一步想去抓取应届生校园招聘信息。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:小程序 找工作 宣讲会 Frame page 找工作 程序 信息

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
王平 + 20 观点有启发
selinazhou + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:10