(详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)

本次爬取的网页是猎聘网内关于深圳的所有招聘信息,一共400多个职位,并保存为csv文件存储,好了,话不多说,开始进入讲解。(对爬虫感兴趣的,可以参考此篇文章的做法去爬你想要的网站去吧!!!)

首先打开目标网站:

https://www.liepin.com/zhaopin/?compkind=&dqs=050090&pubTime=&pageSize=40&salary=&compTag=&sortFlag=&compIds=&subIndustry=&jobKind=&industries=&compscale=&key=&siTag=1B2M2Y8AsgTpgAmY7PhCfg%7EfA9rXquZc5IkJpXC-Ycixw&d_sfrom=search_title&d_ckId=c16556e4cc914dee657cb1e26c5f809e&d_curPage=0&d_pageSize=40&d_headId=c16556e4cc914dee657cb1e26c5f809e0

页面信息如下(因为招聘信息是动态,可能你的界面的职位会有所不同)

       (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第1张图片

我们按F12进入开发者界面:

点击元素旁边的类似鼠标的按钮,如下:

然后就可以在原网页点击我们想要获取的标签,之后就会显示该标签对应的html代码

比如点击工作名称:双语解说员,然后右边就会帮我们找到对应的源代码。

(详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第2张图片

接着我们分析上下代码,发现该所有职位的代码都在

  • ..
  • 之间

    (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第3张图片

    所有我们可以找到包含这些职位代码的上一个标签,即

    故代码可以写成  all_job = html.find("ul", class_="sojob-list").find_all("li")

    这样我们就定位到这个工作列表下,下面所有操作都是从这里面去查询,我们用一个循环遍历每个

  • 下的子标签

    用find方法可以让网页解析器一直查询,直到查到对应的标签下停止,这里我们可以定位到 

    该标签下就是我们要爬取的东西

    (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第4张图片

    爬取工作名实现:name = date.find("a", target="_blank").text.strip()

    再打开

    (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第5张图片

    因此

    爬取地区实现:area = date.find("a", class_="area").text

    爬取薪水实现:salary = date.find("span", class_="text-warning").text

    爬取网站实现:url = date.find("a", class_="area")["href"]  

    爬取学历实现:edu = date.find("span", class_="edu").text

    最后我们再用一个循环去让网站的url发生变化,也就是网站最后面的数字就是该网页的页数,如下:

    (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第6张图片

    最后再通过两行命令,将结果保存为csv文件即可

    爬取结束!!

    查看结果:

    (详细)python爬取网页信息并保存为CSV文件(后面完整代码!!!)_第7张图片

    附上完整代码:

    import requests
    import  bs4
    import pandas as pd
    result = {"jobname": [],   # 工作名
              "area": [],  # 地区
              "salary": [],  # 薪水
              "url": [],   # 网址
                "edu":[]  #学历
              }
    for i in range(11):
        url = "https://www.liepin.com/zhaopin/?compkind=&dqs=050090&pubTime=&pageSize=40&salary=&compTag=&sortFlag=&compIds=&subIndustry=&jobKind=&industries=&compscale=&key=&siTag=1B2M2Y8AsgTpgAmY7PhCfg%7EfA9rXquZc5IkJpXC-Ycixw&d_sfrom=search_title&d_ckId=c16556e4cc914dee657cb1e26c5f809e&d_curPage=0&d_pageSize=40&d_headId=c16556e4cc914dee657cb1e26c5f809e" + str(i)
        print(url)
        r = requests.get(url)
        html = bs4.BeautifulSoup(r.text, "html.parser")
        all_job = html.find("ul", class_="sojob-list").find_all("li")
        for date in all_job:
            name = date.find("a", target="_blank").text.strip()
            area = date.find("a", class_="area").text
            salary = date.find("span", class_="text-warning").text
            url = date.find("a", class_="area")["href"]
            edu = date.find("span", class_="edu").text
            result["jobname"].append(name)
            result["area"].append(area)
            result["salary"].append(salary)
            result["url"].append(url)
            result["edu"].append(edu)
        df = pd.DataFrame(result)
        df.to_csv("shenzhen_Zhaopin.csv", encoding="utf_8_sig")
  • 你可能感兴趣的:(python,爬虫,python,爬虫)