V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
namco1992
V2EX  ›  Python

拉勾网 python 相关职位爬取以及分析展示,希望各位批评指正

  •  
  •   namco1992 · 2016-07-07 22:31:28 +08:00 · 6274 次点击
    这是一个创建于 3060 天前的主题,其中的信息可能已经有所发展或是发生改变。

    个人练手的小项目,主要逻辑如下: 利用 scrapy 框架对拉勾网上的职位进行抓取,数据存储至 mongodb 中,后续进行进一步分析导出 json 格式数据,利用 fabric + 定时任务上传更新数据至服务器,完成自动部署。目前仅做了对 python 相关职位的抓取。

    至于抓取回来的数据,其实并没有做什么分析,只是归类展示。对于关键词的整理,算是用了比较 trick 的方法,通过正则匹配出所有英文单词,排除掉某些不需要的词组,然后进行词频的排序,得出了一个高频关键词的结果。但是这个不算是方法的方法,势必会遗漏掉某些可能是通过中文描述的关键词组,所以还望有经验的前辈指教。

    数据展示网站示例:http://107.170.207.236/job_analysis/(就是台 DO 的 5 刀服务器,各位高抬贵手)

    数据展示项目地址:https://github.com/namco1992/job_analysis

    爬虫项目地址:https://github.com/namco1992/lagou_crawler

    本人前端苦手,现在只是做了一个非常简陋的展示,没有做更进一步的分析。也希望感兴趣的朋友能提些不同维度分析的建议,当然也非常欢迎直接提 issue 或者 Pull Request 。

    我个人想到的还有通过地域维度分析薪酬情况,或者增加更多类别的工作岗位抓取。也希望大家有其他想法的话能够不吝赐教。

    最后,如果能给个 star ,那就是对我莫大的支持了。再次感谢!

    28 条回复    2016-07-19 17:04:39 +08:00
    namco1992
        1
    namco1992  
    OP
       2016-07-08 08:51:45 +08:00
    有人能给点反馈么~[认真脸]
    Allianzcortex
        2
    Allianzcortex  
       2016-07-08 08:54:12 +08:00   ❤️ 1
    为什么都喜欢用 scrapy …… 果然我还要再学一遍……

    我当时专门在虚拟机里装了 Fiddler 来分析拉钩,其实网页链接是挺奇葩的,比如正常的职位显示是在网页上就能得到,但有些需要专门 Post 个请求来得到 JSON 数据。

    关于词频显示,我用的是 jieba ,但效果不好,用正则来匹配就很棒啊。已 star

    我是一直没有在数据库里进行存储,这点要向楼主学习

    ==啊,我把我当时写的也放到 github 上,就是里面的一个 res.json 数据
    Allianzcortex
        3
    Allianzcortex  
       2016-07-08 09:09:15 +08:00
    namco1992
        4
    namco1992  
    OP
       2016-07-08 09:16:36 +08:00
    @Allianzcortex

    词频的话,我当时就想应该绝大多数技术要求的关键词都是英文单词,所以索性就用正则匹配出来了,就是有个问题,英文描述的工作职位就没有办法抓取到对应的关键词。

    然后存在 mongodb 里面主要是为了分析方便,工作职位信息相对来说时效性没有那么强,在一段时间内都有分析价值。

    我看了你的 repo ,感觉你的点子更棒啊~
    Allianzcortex
        5
    Allianzcortex  
       2016-07-08 09:19:48 +08:00
    @namco1992 不是谦虚,真的写的渣,刚刚才 Push 上去的代码。怎么说,看到拉钩上的职位都是 qianduankaifa,houduankaifa 这种后缀,真是觉得……擦擦擦
    wujunze
        6
    wujunze  
       2016-07-08 09:25:42 +08:00
    不错 已经 star 最近也在玩儿爬虫 学习了
    namco1992
        7
    namco1992  
    OP
       2016-07-08 09:44:56 +08:00
    @Allianzcortex 我都是遍历的...第一次统计都需要爬两百万个页面...
    xiaoyu9527
        8
    xiaoyu9527  
       2016-07-08 11:33:22 +08:00
    @namco1992 拉手并没有封 IP 的问题么?
    namco1992
        9
    namco1992  
    OP
       2016-07-08 11:46:28 +08:00
    据我所知没有封 IP ,也不知道拉勾的人上不上 V 站,不过还是低调点好
    practicer
        10
    practicer  
       2016-07-08 11:49:06 +08:00
    拉钩的请求速度怎么样?楼主有统计爬虫的速度嘛?
    namco1992
        11
    namco1992  
    OP
       2016-07-08 13:42:55 +08:00
    还 ok ,我就是在自己普通 PC 上跑的,大概每分钟 300 个页面。 python 相关职位接近 4000 个,爬起来还是比较快的。
    zoudeze
        12
    zoudeze  
       2016-07-08 13:53:36 +08:00 via Android
    突然间感觉 do 访问好快啊
    GreatMartial
        13
    GreatMartial  
       2016-07-08 14:00:05 +08:00 via Android
    支持一个
    jzp113
        14
    jzp113  
       2016-07-08 14:28:07 +08:00
    看到了保健按摩。
    namco1992
        15
    namco1992  
    OP
       2016-07-08 14:31:03 +08:00
    @jzp113 哈哈哈,被发现了。之前做的 side project ,不过反正是做给国外用户的,不算犯法吧[doge]
    namco1992
        16
    namco1992  
    OP
       2016-07-08 14:31:51 +08:00
    @zoudeze 旧金山的线路,偶尔还是会抽风访问不了
    slysly759
        17
    slysly759  
       2016-07-08 17:22:58 +08:00
    都是 json 格式的 我原来也写过一个 当时就爬了一万条的样子 也是放在 mongodb 用别人的 BI 做的可视化 没什么难度
    pepesii
        18
    pepesii  
       2016-07-08 17:39:57 +08:00
    额,我也做了一个!比你的那个丑!还是我的毕业设计!
    jzp113
        19
    jzp113  
       2016-07-08 17:52:12 +08:00
    @namco1992 不错,中国的有吗?
    namco1992
        20
    namco1992  
    OP
       2016-07-08 20:50:12 +08:00
    @jzp113 哈哈,别想了兄弟,没有中国的
    wslsq
        21
    wslsq  
       2016-07-08 22:34:46 +08:00
    楼主做的还不错!赞!期待能制作一个前端方面的,谢谢!
    namco1992
        22
    namco1992  
    OP
       2016-07-09 08:58:10 +08:00
    @wslsq 可以啊,有时间就多做几种职位,你也可以 fork 回去自己做~
    GeekGao
        23
    GeekGao  
       2016-07-09 23:41:19 +08:00
    很酷的 idea
    GeekGao
        24
    GeekGao  
       2016-07-09 23:44:58 +08:00   ❤️ 1
    提个小建议哈,楼主可以基于招聘网站需求,搞个“技术雷达”,分析下,排除语言条件外,用啥具体的技术, offer 会更高
    namco1992
        25
    namco1992  
    OP
       2016-07-10 09:40:42 +08:00
    @GeekGao 多谢建议~
    heamon7
        26
    heamon7  
       2016-07-10 11:45:03 +08:00
    非常赞!
    namco1992
        27
    namco1992  
    OP
       2016-07-10 18:19:48 +08:00
    @heamon7 谢谢鼓励~
    Toddz
        28
    Toddz  
       2016-07-19 17:04:39 +08:00
    想问下有添加什么反反爬虫措施吗? 几个月前自己用 requests 写的爬虫现在又试了试差不多 20 页左右就被封了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2930 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:51 · PVG 11:51 · LAX 19:51 · JFK 22:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.