阿布云

你所需要的,不仅仅是一个好用的代理。

水木清华论坛怎么爬

阿布云 发表于

Crawler_Job

简介:

Crawler_Job 是获取北邮人以及水木清华论坛招聘信息的爬虫
Crawler_Job 使用 Python 编写,Python 版本号为 3.3.2

实现方案:

北邮人和水木清华使用同一种 BBS 系统,爬取工作能够复用
可配置感兴趣的关键词,使用简单的字符串查询招聘标题中是否含有关键词:

def <span class="pl-en">title_contain_keyword</span>(self,tgt_title)<span class="pl-k">:</span> <span class="pl-k">return</span> <span class="pl-en">list</span>(<span class="pl-en">filter</span>(lambda keyword <span class="pl-k">:</span> keyword <span class="pl-k">in</span> tgt_title, <span class="pl-smi">self</span>.<span class="pl-smi">title_keyword</span>))

1

2

def <span class="pl-en">title_contain_keyword</span>(self,tgt_title)<span class="pl-k">:</span>

    <span class="pl-k">return</span> <span class="pl-en">list</span>(<span class="pl-en">filter</span>(lambda keyword <span class="pl-k">:</span> keyword <span class="pl-k">in</span> tgt_title, <span class="pl-smi">self</span>.<span class="pl-smi">title_keyword</span>))

同样也可以关键字来过滤掉一些招聘信息,或者是一些管理员发的取消权限的水贴:

def <span class="pl-en">filter_limit_keyword_in_title</span>(self,tgt_title)<span class="pl-k">:</span> <span class="pl-k">if</span> <span class="pl-en">list</span>(<span class="pl-en">filter</span>(lambda keyword <span class="pl-k">:</span> keyword <span class="pl-k">in</span> tgt_title, <span class="pl-smi">self</span>.<span class="pl-smi">limit_keyword</span>))<span class="pl-k">:</span> <span class="pl-k">return</span> False else<span class="pl-k">:</span> <span class="pl-k">return</span> True

1

2

3

4

5

def <span class="pl-en">filter_limit_keyword_in_title</span>(self,tgt_title)<span class="pl-k">:</span>

    <span class="pl-k">if</span> <span class="pl-en">list</span>(<span class="pl-en">filter</span>(lambda keyword <span class="pl-k">:</span> keyword <span class="pl-k">in</span> tgt_title, <span class="pl-smi">self</span>.<span class="pl-smi">limit_keyword</span>))<span class="pl-k">:</span>

<span class="pl-k">return</span> False

else<span class="pl-k">:</span>

<span class="pl-k">return</span> True

招聘信息是按照发布时间先后排序
感兴趣的招聘信息没有显示的条数限制
而不感兴趣的招聘信息(除了感兴趣和过滤点的以外)的显示条数是需要通过配置来限制
不同页面显示模板可以通过修改以下文件来实现
html_model.html list_content.html

环境搭建

本项目在 Win7 x64 下测试可运行,在 Python3 的基础下还需要以下依赖包:

easy_install BeautifulSoup4 easy_install apscheduler easy_install redis

1

2

3

4

easy_install BeautifulSoup4  

easy_install apscheduler  

easy_install redis

 

这里还需要安装 Redis 数据库,Win 下安装 Redis 可能不是很方便,这是下载链接 Redis 下载链接, 而 Redis 在 Python 下的接口详见

运行:

 

redis-server.exe python crawler.py

1

2

3

redis-server.exe  

python crawler.py

 

 

效果图:

抓取过于频繁,服务器返回429.这个时候需要切换代理IP了,推荐使用阿布云代理,阿布云代理IP,提供高匿代理,爬虫代理.

文章来源:https://geekspider.org/