相关推荐recommended
【爬虫】实战1-爬取Boss直聘信息数据
作者:mmseoamin日期:2024-04-29

【爬虫】实战1-爬取Boss直聘信息数据,第1张

 【爬虫】实战1-爬取Boss直聘信息数据,第2张专栏文章索引:爬虫

【爬虫】实战1-爬取Boss直聘信息数据,第3张目录

一、找到目标数据(2个确定)​

1.确定目标网页

2.确定目标网址

二、编写代码​

三、查看数据​

五、总结


一、介绍【爬虫】实战1-爬取Boss直聘信息数据,第4张

所用工具:DrissionPage

二、找到目标数据(2个确定)【爬虫】实战1-爬取Boss直聘信息数据,第5张

1.确定目标网页

  •  打开目标网站

    网站:「南京招聘网」海量南京人才招聘信息 - BOSS直聘(自动定位所在地点,我是南京)

    【爬虫】实战1-爬取Boss直聘信息数据,第6张

    • 通过关键字搜索

      【爬虫】实战1-爬取Boss直聘信息数据,第7张

      • 观察页面上是否有想要的数据

        【爬虫】实战1-爬取Boss直聘信息数据,第8张

        2.确定目标网址

        我们直接用浏览器网网址输入框中的网址即可

        【爬虫】实战1-爬取Boss直聘信息数据,第9张

        • 切换网页并复制粘贴网址

          由于网址(域名+参数),域名不会变,参数可能会随着页面的变化而变化

          我们可先翻到第2页

          【爬虫】实战1-爬取Boss直聘信息数据,第10张

          可以看到网址也发生了改变

          我们可以切换不同的页码并将网址赋值粘贴下来(一般3-4个即可)

          注意最后再重新翻到第一页

          【爬虫】实战1-爬取Boss直聘信息数据,第11张

          可以看到当重新翻到第一页的时候网址发生了变化,第一页用这个网址即可

          • 观察网址

            【爬虫】实战1-爬取Boss直聘信息数据,第12张

            可以看到只有page参数有变化,显然page参数对应的是页码数

            三、编写代码【爬虫】实战1-爬取Boss直聘信息数据,第13张

            • 导入所需库
              # 导入WebPage库
              from DrissionPage import WebPage
              # 导入动作链
              from DrissionPage.common import Actions
              # 导入时间库
              import time
              # 导入读取和写入文件库
              import csv
              • 查找元素获取数据
                ele1 = page.eles('.job-card-body clearfix')
                for i in range(len(ele1)):
                    ele2 = ele1[i].ele('.job-card-left')
                    ele3 = ele2.ele('.job-title clearfix')
                    # title 岗位名称
                    title = ele3.ele('.job-name').text
                    # area 公司地址
                    ele4 = ele3.ele('.job-area-wrapper')
                    area = ele4.ele('.job-area').text
                    ele5 = ele2.ele('.job-info clearfix')
                    # salary 薪水
                    salary = ele5.ele('.salary').text
                    ele6 = ele5.ele('.tag-list')
                    ele7 = ele6.eles('tag:li')
                    # time 工作时限
                    time = ele7[0].text
                    # education 学历
                    education = ele7[1].text
                    ele8 = ele1[i].ele('.job-card-right')
                    ele9 = ele8.ele('.company-info')
                    # name 公司名称
                    name = ele9.ele('tag:a').text
                    
                    print(title, area, salary, time, education, name)