王碧瑶
摘要:专用型的网络爬虫能够得到想要的返回结果,本文就以拉勾网作为例子,对基于Python的网络爬虫技术进行研究和分析。
关键词:Python;网络爬虫技术;搜索引擎
中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2017)05-0076-01
1 爬虫系统需求的分析和设计
利用模块化的设计来对网络爬虫系统进行开发,一个通用的爬虫架构需要有爬虫调度端,URL管理器,网页下载器,网页解析器这4个模块。爬虫调度端去启动、停止或者监视爬虫运行情况,URL管理器去对将要爬取的URL和已经爬取过的URL进行管理,网页下载器将URL管理器指定的URL网页下载下来存储为字符串,字符串传送给网页解析器进行解析,并将其中未被抓取过的URL送入URL管理器中。
公司名、地址以及薪水等都需要被抓取然后保存到文件中。拉勾网加载职位信息采用异步加载方式,所以对一系列网络请求分析之后,发现是positionAjax.json请求去响应职位信息,网页存储职位信息采用的是json格式,并且json的层级结构为content-positionResult-result,所以采用json格式读取这种层级结构下的数据。其次就是分页的设计,在json格式content-positionResult-totalCount下存储着该种搜索下职位信息的总个数,发现每页的职位个数为15,只要totalCount/15就可以得出爬取的页数。
2 基于Python的网络爬虫技术的实现
下面就利用拉勾网来进行基于Python的网络爬虫的实现。爬虫首先要获取的是所有待抓取的链接地址,再就是对链接地址中的职位信息进行有效解析,随后保存在文件当中。
2.1 抓取与解析的实现
首先确定URL为'https://www.lagou.com/jobs/positionAjax.json',浏览器提交的FormData有……