python热爱者

招聘网站信息收集

2019-08-05  本文已影响0人  二纸荒唐言

FindJob

爬取各大招聘公司,将招聘信息保存到本地。

招聘网站

持续更新

传入参数设计

由于这些招聘网站设置的参数不同,统一到本项目中设置两个参数:

city: 招聘地点
keyword: 搜索关键字(如:java、python、平面设计等等)

同时可以选择其中一个网站获取数据,也可以获得所有网站进行数据获取。

项目结构

代码分析

前程无忧进行代码分析,定义一个QCWY类,构造函数只要传入关键字、城市名称、线程数。

URL分析

通过分析url, 获得相应的信息,这里城市的ID比较难构造,但是通过分析其他文件发现一个JS文件,保存着城市ID和城市之间的关系,通过分析JS文件,将输入的城市名称转换成相应的ID:

    def _get_city_code(self):
        url = 'https://js.51jobcdn.com/in/js/2016/layer/area_array_c.js'
        req = requests.get(url, headers=self.header).text
        a = req.find(self.city)
        return req[a - 9:a - 3]
城市ID

同时获取搜索的页数,并构造相应URL


获取最大页数
def _get_max_page(self):
        city_code = self._get_city_code()
        url = self.baseurl + '{},000000,0000,00,9,99,{},2,1.html'.format(city_code, self.keyword)
        req = requests.get(url=url, headers=self.header)
        req.encoding = 'gbk'
        html = etree.HTML(req.text)
        max_page = html.xpath('//*[@id="resultList"]/div[2]/div[5]/text()')[1][3:]
        for page in range(1, int(max_page) + 1):
            page_url = self.baseurl + '{},000000,0000,00,9,99,{},2,{}.html'.format(city_code, self.keyword, page)
            self.pagequeue.put(page_url)

进行上述获得城市ID,获得最大页码后,进行url构造后进行爬取,通过分析用Xpath就行获取相应的信息,获得如下信息

  1. 职位名称
  2. 详细链接
  3. 公司名称
  4. 工作地点
  5. 薪资
  6. 发布时间
  7. 职位信息
  8. 公司信息

获取这些字段,使用csv进行存储。

存在问题

项目地址

FindJob
同时推荐给小伙伴我们团队的爬虫项目地址如下:
ECommerceCrawlers

上一篇下一篇

猜你喜欢

热点阅读