首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >拉勾网拉你上勾

拉勾网拉你上勾

作者头像
用户6825444
发布2019-12-18 11:46:50
5570
发布2019-12-18 11:46:50
举报
文章被收录于专栏:木下学Python木下学Python

需求简介

拉勾网是一个互联网行业的一个招聘网站,上面有许多职位,于是乎,小编想提取指定职位的基本信息(职位名,薪水,工作经验,工作地点,教育背景),然后插入 MongoDB 数据库,再根据每一个职位对应的 url 提取职位描述,做成词云

拉勾网反爬

看似拉勾网结构简单,实际上拉勾网的反爬有点厉害!

  1. 使用了 Ajax 技术,需要抓包找到数据源,找到数据源后,去访问这个链接,是绝对不会让你访问的,会出现以下图片,就算你是今天第一次用一个 ip 访问,不信你试试~

2.解决以上问题后,又出现了了一个脑阔大的问 题,用一个 ip 在提取数据时,提取到一定数量 就把 ip 封了,不让你继续提取,然而重新运行 又可以提取,但又得从头开始;也可以手动修改 页数代码继续爬取,这太 low 了

此问题在 HtmlDownload 模块解决的

流程

注:有时候一运行会报编码错误,在提取过程中也会出现过,这个有可能是网站解析的时候出的问题,只需要重新运行直到可以了就行

1、SpiderMan模块:主逻辑模块获取拉勾网数据源使用的是 post 请求,有个 Form Data 表单要提交的,first 代表是不是第一页,是为 true,不是为 false,但不管是什么不影响爬取;pn 代表页数;kw 代表你输入的职位的名称

2、 HtmlDownload模块:上面说的反爬问题在这里解决,下载 HTML 页面的模块,分三个函数,随机获取请求头和代理的函数;用于 post 请求数据源的函数,要想获得数据源,必须带 cookie;用于 get 请求获得职位描述的函数;我都用上了代理,每请求一次就换代理,降低被反爬的概率,前提是所使用的的代理做够多!足够稳定!要不然可能就会出现,数据爬取到了,可到了提取职位描述的时候这些代理又被封了

3、 HtmlParser模块:解析数据提取数据的模块

4、DataOutput模块:数据输出处理模块,职位信息插入数据库,职位描述写入 txt

5、UrlManager模块:构造每一个职位所对应的 url

-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木下学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档