文档章节

拉勾网拉你上勾

木下瞳
 木下瞳
发布于 2019/04/17 10:22
字数 799
阅读 34
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

预览



需求简介

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


拉勾网反爬

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

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


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


此问题在 HtmlDownload 模块解决的


文件获取

关注公众号“木下学Python”,回复“拉勾”获取源代码


流程

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

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-

关注我


本文分享自微信公众号 - 木下学Python(zjk_py)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

木下瞳
粉丝 0
博文 69
码字总数 54203
作品 0
珠海
私信 提问
加载中
请先登录后再评论。
上拉和下拉刷新的瀑布流

基于 UIScrollview 的带上拉加载下一页数据和下拉刷新的瀑布流demo。本Demo使用使用 UrlImageView 实现网络图片异步加载和 EGORefresh 实现刷新。 [Code4App.com]...

匿名
2013/04/12
4.3K
0
NAT工具--dsnat

dsnat(Dynamic Source Network Address Translation) 是一个基于lvs的模块,在taobao开源的FNAT基础上开发,dsnat位于网络的网关位置,内网访问外网时,会将内网地址改成公网地址池中的ip,轮询选...

wilburj
2013/05/20
2.2K
0
端口映射程序--PS320

PS320 V0.12 版本为开源版本 本程序最初想解决自己管理服务器问题,当初因客户不对外开放端口,导致管理工作量大,速度慢且不稳定,每次管理都去现场处理。 本程序提供端口映射功能,可以直接...

冰迪
2013/06/03
2.1K
0
增量更新模型的讨论

客户端和服务端的数据同步过程中,客户端有缓存,不需要每次都是全量刷新,所以可以采用增量的方式更新。 每次在客户端进行刷新的时候,服务端会将最新的增删改操作推送到客户端,客户端对其...

xh4n3
2015/09/16
1.6K
7
gitbucket介绍

github固然强大,但不怎么适合企业级的开发版本管理,原因相信大家都明白,首先在github上上传和拉取代码速度是比较慢的,再者,在Github上创建一个私有仓库是收费的,那么gitbucket是一个非...

似水流年0_0
2016/03/09
1.7K
4

没有更多内容

加载失败,请刷新页面

加载更多

好用到爆的 Java 技巧

本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情...

码农突围
25分钟前
8
0
消息队列(MessageQueue)-分析

这里分析消息队列的原理和一般做法和其理念价值 这里还会 分析 NATS 和其可改进点 TODO

梦想游戏人
29分钟前
20
0
Redis 教程

Redis 教程 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的...

rootliu
31分钟前
9
0
SPSSAU 付费数据研究报告服务

SPSSAU-付费数据分析报告服务(周老师提供) 本文分享自微信公众号 - SPSSAU(spssau)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起...

SPSSAU
2017/11/08
0
0
芋艿-springcloud gateway

http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Gateway/?github springcloud gateway 官方文档 https://cloud.spring.io/spring-cloud-gateway/reference/html/#gatewayfilter-factories......

Java搬砖工程师
50分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部