专栏首页机器学习原理爬虫篇(3)——招聘网站招聘信息的爬取流程

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

  • 目的:爬取智联招聘上全国的所有职位信息 职位信息包括:职位名称、福利、待遇、薪水、工作地点、工作经验、学历要求等
  • 流程

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

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

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

image.png

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

image.png

3.职位详情页面

image.png

  • 编写代码 1.获取职位分类列表
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.获取职位列表

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.获取职位详情

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.保存

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.主函数

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)——从爬取练习题开始

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • xml基本知识点

    xml, Extensible Markup Language,可扩展的标记语言。 ? xml文档结构.jpg xml文档的规则 1.0 xml文档必须以一个...

    东风冷雪
  • net发布的dll方法和类显示注释信息(字段说明信息)[图解]

        自己发布的dll添加的另一个项目中突然没有字段说明信息了,给使用带来了很多的不便,原因是为了跨项目引用,所以导致不显示注释信息的,一下是解决这个问题的方...

    王磊的博客
  • beego配置

    beego 目前支持 INI、XML、JSON、YAML 格式的配置文件解析,但是默认采用了 INI 格式解析,用户可以通过简单的配置就可以获得很大的灵活性。 ...

    若与
  • xpath

    XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节...

    听城
  • 详解 Tomcat 的连接数与线程池

    前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详...

    Java高级架构
  • 清华学霸在MIT的新研究:让机器人像人一样理解世界

    机器能自行理解我们这个物理世界的基本规则么?答案是能。 多年以来,麻省理工学院(MIT)的研究人员一直在寻求解释和复制人类智能,而他们最近的研究成果,是如何让...

    机器人网
  • Python网络爬虫笔记(三):下载博客园随笔到Word文档

    (一)   说明 在上一篇的基础上修改了下,使用lxml提取博客园随笔正文内容,并保存到Word文档中。 操作Word文档会用到下面的模块: pip insta...

    free赖权华
  • dubbo基于spring的构建分析

    dubbo是基于spring构建和运行的,兼容spring配置。这篇说说dubbo基于spring的过程。 dubbo首先利用了从spring2.0开始的一个...

    wannshan
  • 《进击的虫师》爬取豆瓣电影海报(Top250)

    有人想学一点编程, 但是一直没有找到感兴趣的切入点,可以简单的爬虫入手! 几十行代码, 轻松爬取豆瓣Top250电影数据,即刻体会编程的乐趣... ? ...

    zhaoolee
  • idea 14+jrebel web以及外部依赖的jar热部署

    1,关于idea使用jrebel工具,web项目热部署的事儿,网上讲的很多。不再提了。 2,讲一个普遍的场景,如果你有个xxx-web项目,本身有业务类类,同...

    wannshan

扫码关注云+社区

领取腾讯云代金券