iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现爬取腾讯招聘网岗位信息
  • 277
分享到

Python怎么实现爬取腾讯招聘网岗位信息

2023-06-22 07:06:36 277人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python怎么实现爬取腾讯招聘网岗位信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现爬取腾讯招聘网岗位信息”吧!介绍开发环境windows 10pyth

本篇内容主要讲解“python怎么实现爬取腾讯招聘网岗位信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python怎么实现爬取腾讯招聘网岗位信息”吧!

介绍

开发环境

windows 10

python3.6

开发工具

PyCharm

numpy、matplotlib、time、xlutils.copy、os、xlwt, xlrd, random

效果展示

代码运行展示

Python怎么实现爬取腾讯招聘网岗位信息

Python怎么实现爬取腾讯招聘网岗位信息

实现思路

打开腾讯招聘的网址右击检查进行抓包,进入网址的时候发现有异步渲染,我们要的数据为异步加载

Python怎么实现爬取腾讯招聘网岗位信息

构造起始地址:

Python怎么实现爬取腾讯招聘网岗位信息

start_url = ‘https://careers.tencent.com/tencentcareer/api/post/Query’

参数在headers的最下面

timestamp: 1625641250509

countryId:

cityId:

bgIds:

productId:

cateGoryId:

parentCategoryId:

attrId:

keyWord:

pageIndex: 1

pageSize: 10

language: zh-cn

area: cn

发送请求,获取响应

self.start_url = 'Https://careers.tencent.com/tencentcareer/api/post/Query' # 构造请求参数            params = {                # 捕捉当前时间戳                'timestamp': str(int(time.time() * 1000)),                'countryId': '',                'cityId': '',                'bgIds': '',                'productId': '',                'categoryId': '',                'parentCategoryId': '',                'attrId': '',                'keyword': '',                'pageIndex': str(self.start_page),                'pageSize': '10',                'language': 'zh-cn',                'area': 'cn'            }            headers = {                'user-agent': random.choice(USER_AGENT_LIST)            }            response = session.get(url=self.start_url, headers=headers, params=params).JSON()

提取数据,获取岗位信息大列表,提取相应的数据

Python怎么实现爬取腾讯招聘网岗位信息

# 获取岗位信息大列表        json_data = response['Data']['Posts']        # 判断结果是否有数据        if json_data is None:            # 没有数据,设置循环条件为False            self.is_running = False        # 反之,开始提取数据        else:            # 循环遍历,取出列表中的每一个岗位字典            # 通过key取value值的方法进行采集数据            for data in json_data:                # 工作地点                LocationName = data['LocationName']                # 往地址大列表中添加数据                self.addr_list.append(LocationName)                # 工作属性                CategoryName = data['CategoryName']                # 往工作属性大列表中添加数据                self.category_list.append(CategoryName)                # 岗位名称                RecruitPostName = data['RecruitPostName']                # 岗位职责                Responsibility = data['Responsibility']                # 发布时间                LastUpdateTime = data['LastUpdateTime']                # 岗位地址                PostURL = data['PostURL']

数据生成折线图、饼图、散点图、柱状图

# 第一张图:根据岗位地址和岗位属性二者数量生成折线图        # 146,147两行代码解决图中中文显示问题plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        # 由于二者数据数量不统一,在此进行切片操作        x_axis_data = [i for i in addr_dict.values()][:5]        y_axis_data = [i for i in cate_dict.values()][:5]        # print(x_axis_data, y_axis_data)        # plot中参数的含义分别是横轴值,纵轴值,线的形状,颜色,透明度,线的宽度和标签        plt.plot(y_axis_data, x_axis_data, 'ro-', color='#4169E1', alpha=0.8, linewidth=1, label='数量')         # 显示标签,如果不加这句,即使在plot中加了label='一些数字'的参数,最终还是不会显示标签        plt.legend(loc="upper right")        plt.xlabel('地点数量')        plt.ylabel('工作属性数量')        plt.savefig('根据岗位地址和岗位属性二者数量生成折线图.png')        plt.show()

Python怎么实现爬取腾讯招聘网岗位信息

# 第二张图:根据岗位地址数量生成饼图        """工作地址饼图"""        addr_dict_key = [k for k in addr_dict.keys()]        addr_dict_value = [v for v in addr_dict.values()]        plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']        plt.rcParams['axes.unicode_minus'] = False        plt.pie(addr_dict_value, labels=addr_dict_key, autopct='%1.1f%%')        plt.title(f'岗位地址和岗位属性百分比分布')        plt.savefig(f'岗位地址和岗位属性百分比分布-饼图')        plt.show()

Python怎么实现爬取腾讯招聘网岗位信息

# 第三张图:根据岗位地址和岗位属性二者数量生成散点图        # 这两行代码解决 plt 中文显示的问题        plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        # 输入岗位地址和岗位属性数据        production = [i for i in data.keys()]        tem = [i for i in data.values()]        colors = np.random.rand(len(tem))  # 颜色数组        plt.scatter(tem, production, s=200, c=colors)  # 画散点图,大小为 200        plt.xlabel('数量')  # 横坐标轴标题        plt.ylabel('名称')  # 纵坐标轴标题        plt.savefig(f'岗位地址和岗位属性散点图')        plt.show()

Python怎么实现爬取腾讯招聘网岗位信息

# 第四张图:根据岗位地址和岗位属性二者数量生成柱状图        import matplotlib;matplotlib.use('TkAgg')        plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')        name_list = [name for name in data.keys()]        num_list = [value for value in data.values()]        width = 0.5  # 柱子的宽度        index = np.arange(len(name_list))        plt.bar(index, num_list, width, color='steelblue', tick_label=name_list, label='岗位数量')        plt.legend(['分解能耗', '真实能耗'], prop=zhfont1, labelspacing=1)        for a, b in zip(index, num_list):  # 柱子上的数字显示            plt.text(a, b, '%.2f' % b, ha='center', va='bottom', fontsize=7)        plt.xticks(rotation=270)        plt.title('岗位数量和岗位属性数量柱状图')        plt.ylabel('次')        plt.legend()        plt.savefig(f'岗位数量和岗位属性数量柱状图-柱状图', bbox_inches='tight')        plt.show()

Python怎么实现爬取腾讯招聘网岗位信息

源码展示

"""ua大列表"""USER_AGENT_LIST = [                  'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/60.0.3112.90 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3451.0 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:57.0) Gecko/20100101 Firefox/57.0',                  'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36',                  'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.70 Safari/537.36',                  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2',                  'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174',                  'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .net CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; MS-RTC LM 8; InfoPath.2; Tablet PC 2.0)',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.61',                  'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1',                  'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36',                  'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; Touch; MASMJS)',                  'Mozilla/5.0 (X11; linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',                  'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3451.0 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:57.0) Gecko/20100101 Firefox/57.0',                  'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36',                  'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.70 Safari/537.36',                  'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2',                  'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174',                  'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.1.4322; MS-RTC LM 8; InfoPath.2; Tablet PC 2.0)',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 OPR/55.0.2994.61',                  'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1',                  'Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36',                  'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; Touch; MASMJS)',                  'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',                  'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4093.3 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko; compatible; Swurl) Chrome/77.0.3865.120 Safari/537.36',                  'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',                  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4086.0 Safari/537.36',                  'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:75.0) Gecko/20100101 Firefox/75.0',                  'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/91.0.146 Chrome/85.0.4183.146 Safari/537.36',                  'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 VivoBrowser/8.4.72.0 Chrome/62.0.3202.84',                  'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.60',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:83.0) Gecko/20100101 Firefox/83.0',                  'Mozilla/5.0 (X11; CrOS x86_64 13505.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:68.0) Gecko/20100101 Firefox/68.0',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36',                  'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',                  'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400',                  'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36',                  ]from requests_html import HTMLSessionimport os, xlwt, xlrd, randomfrom xlutils.copy import copyimport numpy as npfrom matplotlib import pyplot as pltfrom matplotlib.font_manager import FontProperties  # 字体库import timesession = HTMLSession()class TXSpider(object):    def __init__(self):        # 起始的请求地址        self.start_url = 'https://careers.tencent.com/tencentcareer/api/post/Query'        # 起始的翻页页码        self.start_page = 1        # 翻页条件        self.is_running = True        # 准备工作地点大列表        self.addr_list = []        # 准备岗位种类大列表        self.category_list = []    def parse_start_url(self):        """        解析起始的url地址        :return:        """        # 条件循环模拟翻页        while self.is_running:            # 构造请求参数            params = {                # 捕捉当前时间戳                'timestamp': str(int(time.time() * 1000)),                'countryId': '',                'cityId': '',                'bgIds': '',                'productId': '',                'categoryId': '',                'parentCategoryId': '',                'attrId': '',                'keyword': '',                'pageIndex': str(self.start_page),                'pageSize': '10',                'language': 'zh-cn',                'area': 'cn'            }            headers = {                'user-agent': random.choice(USER_AGENT_LIST)            }            response = session.get(url=self.start_url, headers=headers, params=params).json()            """调用解析响应方法"""            self.parse_response_json(response)            """翻页递增"""            self.start_page += 1            """翻页终止条件"""            if self.start_page == 20:                self.is_running = False        """翻页完成,开始生成分析图"""        self.crate_img_four_func()    def crate_img_four_func(self):        """        生成四张图方法        :return:        """        # 统计数量        data = {}            # 大字典        addr_dict = {}       # 工作地址字典        cate_dict = {}       # 工作属性字典        for k_addr, v_cate in zip(self.addr_list, self.category_list):            if k_addr in data:                # 大字典统计工作地址数据                data[k_addr] = data[k_addr] + 1                # 地址字典统计数据                addr_dict[k_addr] = addr_dict[k_addr] + 1            else:                data[k_addr] = 1                addr_dict[k_addr] = 1            if v_cate in data:                # 大字典统计工作属性数据                data[v_cate] = data[v_cate] + 1                # 工作属性字典统计数据                cate_dict[v_cate] = data[v_cate] + 1            else:                data[v_cate] = 1                cate_dict[v_cate] = 1        # 第一张图:根据岗位地址和岗位属性二者数量生成折线图        # 146,147两行代码解决图中中文显示问题        plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        # 由于二者数据数量不统一,在此进行切片操作        x_axis_data = [i for i in addr_dict.values()][:5]        y_axis_data = [i for i in cate_dict.values()][:5]        # print(x_axis_data, y_axis_data)        # plot中参数的含义分别是横轴值,纵轴值,线的形状,颜色,透明度,线的宽度和标签        plt.plot(y_axis_data, x_axis_data, 'ro-', color='#4169E1', alpha=0.8, linewidth=1, label='数量')        # 显示标签,如果不加这句,即使在plot中加了label='一些数字'的参数,最终还是不会显示标签        plt.legend(loc="upper right")        plt.xlabel('地点数量')        plt.ylabel('工作属性数量')        plt.savefig('根据岗位地址和岗位属性二者数量生成折线图.png')        plt.show()        # 第二张图:根据岗位地址数量生成饼图        """工作地址饼图"""        addr_dict_key = [k for k in addr_dict.keys()]        addr_dict_value = [v for v in addr_dict.values()]        plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']        plt.rcParams['axes.unicode_minus'] = False        plt.pie(addr_dict_value, labels=addr_dict_key, autopct='%1.1f%%')        plt.title(f'岗位地址和岗位属性百分比分布')        plt.savefig(f'岗位地址和岗位属性百分比分布-饼图')        plt.show()        # 第三张图:根据岗位地址和岗位属性二者数量生成散点图        # 这两行代码解决 plt 中文显示的问题        plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        # 输入岗位地址和岗位属性数据        production = [i for i in data.keys()]        tem = [i for i in data.values()]        colors = np.random.rand(len(tem))  # 颜色数组        plt.scatter(tem, production, s=200, c=colors)  # 画散点图,大小为 200        plt.xlabel('数量')  # 横坐标轴标题        plt.ylabel('名称')  # 纵坐标轴标题        plt.savefig(f'岗位地址和岗位属性散点图')        plt.show()        # 第四张图:根据岗位地址和岗位属性二者数量生成柱状图        import matplotlib;matplotlib.use('TkAgg')        plt.rcParams['font.sans-serif'] = ['SimHei']        plt.rcParams['axes.unicode_minus'] = False        zhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')        name_list = [name for name in data.keys()]        num_list = [value for value in data.values()]        width = 0.5  # 柱子的宽度        index = np.arange(len(name_list))        plt.bar(index, num_list, width, color='steelblue', tick_label=name_list, label='岗位数量')        plt.legend(['分解能耗', '真实能耗'], prop=zhfont1, labelspacing=1)        for a, b in zip(index, num_list):  # 柱子上的数字显示            plt.text(a, b, '%.2f' % b, ha='center', va='bottom', fontsize=7)        plt.xticks(rotation=270)        plt.title('岗位数量和岗位属性数量柱状图')        plt.ylabel('次')        plt.legend()        plt.savefig(f'岗位数量和岗位属性数量柱状图-柱状图', bbox_inches='tight')        plt.show()    def parse_response_json(self, response):        """        解析响应        :param response:        :return:        """        # 获取岗位信息大列表        json_data = response['Data']['Posts']        # 判断结果是否有数据        if json_data is None:            # 没有数据,设置循环条件为False            self.is_running = False        # 反之,开始提取数据        else:            # 循环遍历,取出列表中的每一个岗位字典            # 通过key取value值的方法进行采集数据            for data in json_data:                # 工作地点                LocationName = data['LocationName']                # 往地址大列表中添加数据                self.addr_list.append(LocationName)                # 工作属性                CategoryName = data['CategoryName']                # 往工作属性大列表中添加数据                self.category_list.append(CategoryName)                # 岗位名称                RecruitPostName = data['RecruitPostName']                # 岗位职责                Responsibility = data['Responsibility']                # 发布时间                LastUpdateTime = data['LastUpdateTime']                # 岗位地址                PostURL = data['PostURL']                # 构造保存excel所需要的格式字典                data_dict = {                    # 该字典的key值与创建工作簿的sheet表的名称所关联                    '岗位详情': [RecruitPostName, LocationName, CategoryName, Responsibility, LastUpdateTime, PostURL]                }                """调用保存excel表格方法,数据字典作为参数"""                self.save_excel(data_dict)                # 提示输出                print(f"第{self.start_page}页--岗位{RecruitPostName}----采集完成----logging!!!")    def save_excel(self, data_dict):        """        保存excel        :param data_dict: 数据字典        :return:        """        # 判断保存到当我文件目录的路径是否存在        os_path_1 = os.getcwd() + '/数据/'        if not os.path.exists(os_path_1):            # 不存在,即创建这个目录,即创建”数据“这个文件夹            os.mkdir(os_path_1)        # 判断将数据保存到表格的这个表格是否存在,不存在,创建表格,写入表头        os_path = os_path_1 + '腾讯招聘数据.xls'        if not os.path.exists(os_path):            # 创建新的workbook(其实就是创建新的excel)            workbook = xlwt.Workbook(encoding='utf-8')            # 创建新的sheet表            worksheet1 = workbook.add_sheet("岗位详情", cell_overwrite_ok=True)            excel_data_1 = ('岗位名称', '工作地点', '工作属性', '岗位职责', '发布时间', '岗位地址')            for i in range(0, len(excel_data_1)):                worksheet1.col(i).width = 2560 * 3                #               行,列,  内容,            样式                worksheet1.write(0, i, excel_data_1[i])            workbook.save(os_path)        # 判断工作表是否存在        # 存在,开始往表格中添加数据(写入数据)        if os.path.exists(os_path):            # 打开工作薄            workbook = xlrd.open_workbook(os_path)            # 获取工作薄中所有表的个数            sheets = workbook.sheet_names()            for i in range(len(sheets)):                for name in data_dict.keys():                    worksheet = workbook.sheet_by_name(sheets[i])                    # 获取工作薄中所有表中的表名与数据名对比                    if worksheet.name == name:                        # 获取表中已存在的行数                        rows_old = worksheet.nrows                        # 将xlrd对象拷贝转化为xlwt对象                        new_workbook = copy(workbook)                        # 获取转化后的工作薄中的第i张表                        new_worksheet = new_workbook.get_sheet(i)                        for num in range(0, len(data_dict[name])):                            new_worksheet.write(rows_old, num, data_dict[name][num])                        new_workbook.save(os_path)    def run(self):        """        启动运行        :return:        """        self.parse_start_url()if __name__ == '__main__':    # 创建该类的对象    t = TXSpider()    # 通过实例方法,进行调用    t.run()

到此,相信大家对“Python怎么实现爬取腾讯招聘网岗位信息”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python怎么实现爬取腾讯招聘网岗位信息

本文链接: https://www.lsjlt.com/news/303489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现爬取腾讯招聘网岗位信息
    目录介绍效果展示实现思路源码展示介绍 开发环境 Windows 10 python3.6 开发工具 pycharm 库 numpy、matplotlib、time、xlutils.c...
    99+
    2024-04-02
  • Python怎么实现爬取腾讯招聘网岗位信息
    本篇内容主要讲解“Python怎么实现爬取腾讯招聘网岗位信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现爬取腾讯招聘网岗位信息”吧!介绍开发环境Windows 10pyth...
    99+
    2023-06-22
  • 爬取腾讯招聘网信息
    import requests from bs4 import BeautifulSoup from math import ceil header = { 'User-Agent': 'Mozilla/5.0 (Window...
    99+
    2023-01-31
    腾讯 招聘网 信息
  • Scrapy案例02-腾讯招聘信息爬取
    目录 1. 目标 2. 网站结构分析 3. 编写爬虫程序 3.1. 配置需要爬取的目标变量 3.2. 写爬虫文件scr...
    99+
    2023-01-30
    腾讯 招聘信息 案例
  • Python中怎么利用网络爬虫获取招聘信息
    Python中怎么利用网络爬虫获取招聘信息,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定义一个class类继承object,定义init方法继承self,主函...
    99+
    2023-06-16
  • 详解如何使用Python网络爬虫获取招聘信息
    目录前言项目目标项目准备反爬措施项目实现效果展示小结前言 现在在疫情阶段,想找一份不错的工作变得更为困难,很多人会选择去网上看招聘信息。可是招聘信息有一些是错综复杂的。而且不能把全部...
    99+
    2024-04-02
  • Python爬虫实战演练之采集拉钩网招聘信息数据
    目录本文要点:环境介绍本次目标爬虫块使用内置模块:第三方模块:代码实现步骤: (爬虫代码基本步骤)开始代码导入模块发送请求解析数据加翻页保存数据运行代码,得到数据本文要点: ...
    99+
    2024-04-02
  • Python基于Selenium怎么实现动态网页信息的爬取
    这篇文章主要介绍“Python基于Selenium怎么实现动态网页信息的爬取”,在日常操作中,相信很多人在Python基于Selenium怎么实现动态网页信息的爬取问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-22
  • 怎么用Python实现爬取百度热搜信息
    小编给大家分享一下怎么用Python实现爬取百度热搜信息,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言何为爬虫,其实就是利用计算机模拟人对网页的操作例如 模拟人类浏览购物网站使用爬虫前一定要看目标网站可刑不可刑 :-)...
    99+
    2023-06-26
  • Python 基于Selenium实现动态网页信息的爬取
    目录一、Selenium介绍与配置1.Selenium简介2. Selenium+Python环境配置二、网页自动化测试1.启动浏览器并打开百度搜索2.定位元素三、爬取动态网页的名人...
    99+
    2024-04-02
  • Python爬虫实现抓取电影网站信息并入库
    目录一.环境搭建1.下载安装包2.修改环境变量3.安装依赖模块二.代码开发三.运行测试1.新建电影信息表2.代码运行四.问题排查和修复1.空白字符报错2.请求报错一.环境搭建 1.下...
    99+
    2024-04-02
  • 怎么利用Python网络爬虫来提取信息
    怎么利用Python网络爬虫来提取信息,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面小编就为大家带来一篇Python网络爬虫与信息提取(实例讲解)。小编觉得挺不错的,现在就...
    99+
    2023-06-02
  • Python怎么用正则表达式实现爬取古诗文网站信息
    本篇内容介绍了“Python怎么用正则表达式实现爬取古诗文网站信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分析古诗文网站下图1展示了古...
    99+
    2023-06-25
  • Python用正则表达式实现爬取古诗文网站信息
    目录分析古诗文网站1. 用正则表达式获取总页数2. 提取诗的标题3. 提取作者和朝代4. 提取诗的内容整理代码完整源代码总结分析古诗文网站 下图1展示了古诗文网站—》诗文 栏目的首页...
    99+
    2024-04-02
  • 如何使用Python爬虫实现抓取电影网站信息并入库
    这篇文章主要介绍如何使用Python爬虫实现抓取电影网站信息并入库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/...
    99+
    2023-06-29
  • 怎么用python爬取中国大学排名网站排名信息
    今天就跟大家聊聊有关怎么用python爬取中国大学排名网站排名信息,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 程序解决问题如下:利用python网络爬虫爬取中国大学排名...
    99+
    2023-06-29
  • Python爬虫怎么实现热门电影信息采集
    这篇文章主要介绍“Python爬虫怎么实现热门电影信息采集”,在日常操作中,相信很多人在Python爬虫怎么实现热门电影信息采集问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python爬虫怎么实现热门电影信...
    99+
    2023-06-21
  • Python怎么利用正则表达式爬取网页信息及图片
    小编给大家分享一下Python怎么利用正则表达式爬取网页信息及图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、正则表达式是什么概念:正则表达式是对字符串操作...
    99+
    2023-06-14
  • Python怎么利用psutil实现获取硬件,网络和进程信息
    楔子Python 有一个第三方模块叫 psutil,专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等等。下面来看一下它的用法,不过在使用之前需要先安装,直接 pip install psutil 即可。CPU 相关获...
    99+
    2023-05-14
    Python psutil
  • 使用Python怎么实现自动提取并收集信息
    本篇文章给大家分享的是有关使用Python怎么实现自动提取并收集信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码实现导入需要的库,包括百度的api接口跟cv2图像截图图库...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作