前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫篇(3)——招聘网站招聘信息的爬取流程

爬虫篇(3)——招聘网站招聘信息的爬取流程

作者头像
DC童生
发布2018-04-28 11:42:43
1.3K0
发布2018-04-28 11:42:43
举报
文章被收录于专栏:机器学习原理机器学习原理
  • 目的:爬取智联招聘上全国的所有职位信息 职位信息包括:职位名称、福利、待遇、薪水、工作地点、工作经验、学历要求等
  • 流程

包括分析页面和编写代码两部分

  • 分析页面 1.主页面由职业分类组成,找到对应id图二

2.副页面由职位列表和下一页组成

image.png

注意/table//tbody/tr/中,通过body是浏览器自动加上的,选的时候去掉

image.png

3.职位详情页面

image.png

  • 编写代码 1.获取职位分类列表
代码语言:javascript
复制
from lxml import etree
import requests
import re
def main_Web(url):
    res = requests.get(url,headers=head).content.decode("utf-8")
    r = etree.HTML(res)
    u_list = r.xpath("//div[@id='search_right_demo']/div/div/a/@href")
    pattern = re.compile("jl=\d+&")
    url_list = [url[:-1]+pattern.sub("jl=489&",i) for i in u_list]
    return url_list

2.获取职位列表

代码语言:javascript
复制
def sub_Web(url):
    res = requests.get(url,headers=head).content.decode("utf-8")
    # print(res)
    r = etree.HTML(res)
    # print(r)
    u_list = r.xpath("//div[@class='newlist_list_content']/table/tr/td/div/a[1]/@href")
    next_page = r.xpath("//a[@class='next-page']/@href")
    return u_list,next_page

3.获取职位详情

代码语言:javascript
复制
def sub_sub_Web(url):
    res = requests.get(url, headers=head).content.decode("utf-8")
    r = etree.HTML(res)
    title = r.xpath("string(//div[@class='fixed-inner-box'][1]/div[1]/h1)")
    weflare = r.xpath("//div[@class='fixed-inner-box'][1]/div[1]/div[1]/span/text()")
    salary = r.xpath("string(//ul[@class='terminal-ul clearfix']/li[1]/strong)")
    address = r.xpath("string(//ul[@class='terminal-ul clearfix']/li[2]/strong)")
    return title,str(weflare),salary,address

4.保存

代码语言:javascript
复制
def save_data(title,weflare,salary,address):
    with open("job.csv","a+",encoding="utf-8") as file:
        file.write("公司名称:"+title+"\n")
        file.write("福利:"+weflare+"\n")
        file.write("薪水:"+salary+"\n")
        file.write("地点:"+address+"\n")
        file.write("***"*25+"\n")

5.主函数

代码语言:javascript
复制
if __name__ == '__main__':
    url = "https://sou.zhaopin.com/"
    head ={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'
    }
    #1.获取职位分类列表
    url_list = main_Web(url)
    #2.获取职位列表
    for x in range(5):

        job_list,next_page = sub_Web(url_list[x])
        for i in range(len(job_list)):
    #3.获取职位详情
            title, weflare, salary, address=sub_sub_Web(job_list[i])
    #4.保存
            save_data(title, weflare, salary, address)

爬虫篇(4)——qq音乐爬取

爬虫篇(2)——爬取博客内容

爬虫篇(1)——从爬取练习题开始

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.02.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档