此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
仅用于学习交流,若用于商业行为或违法行为,后果自负

Python爬虫学习||爬取腾讯招聘网

  • 情况说明
  • 步骤说明
  • 完整代码
  • 实现结果

情况说明

  • 爬取的目标为这儿
  • 是腾讯的招聘网站
  • 使用了一个新的思路

步骤说明

  • 元素寻找

  • 基本元素就是这样子

  • 老规矩F12查看一下位置

  • 然后尝试用requests基本方法获取网页html源码看看

def get_txzp():for i in range(1):url='https://careers.tencent.com/search.html'rs = requests.session()r = rs.get(url, headers=headers)r.encoding = 'utf-8'#soup = BeautifulSoup(r.content, 'lxml')#trees = etree.HTML(r.text)m=r.textprint(r.text)

  • 运行之后,发现源码里说明都没有
  • 考虑可能是异步加载
  • 在F12界面刷新观看network的发送过来的包的内容
  • 很好,没有加密
  • 那我们就直接访问这个接口看看是什么情况
  • 试试看更换url爬取网页源码
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
def get_txzp():for i in range(1):url = 'https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1631625383162&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn'.format(i)rs = requests.session()r = rs.get(url, headers=headers)r.encoding = 'utf-8'#soup = BeautifulSoup(r.content, 'lxml')#trees = etree.HTML(r.text)m=r.textprint(r.text)get_txzp()

  • 基本该有的都有
  • 并且还是一个多层字典嵌套列表
  • 那就一层一层来
  • 不过可以确定的是不需要使用bs4以及etree等解析源码方式
  • 尝试使用字典提取“Data”
  • 报错
  • 检查之后发现这是个字典,但不完全是个字典,因为它目前的形式是字符串
  • 所以我们通过json将这一串转换成字典使用
     m=r.textM = json.loads(m)a=type(m)A=type(M)print(a)print(A)

  • 转换成功
  • 进行依次提取
     m=r.textM = json.loads(m)M1 = M["Data"]M2 = M1['Posts']print(m)print(M1)print(M2)

  • 提取到M2是一个列表
  • 在这个列表下一层是每一组元素构成的字典
  • 那就先依次输出列表的元素
import json
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36','cookie':'_ga=GA1.2.741549489.1600008709; pgv_pvi=8093896704; pgv_pvid=378075616; _gcl_au=1.1.1666053754.1630843983; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22100011930117%22%2C%22first_id%22%3A%22e22e55959d05db4ed0929acd767433c8%40devS%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E4%BB%98%E8%B4%B9%E5%B9%BF%E5%91%8A%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E8%85%BE%E8%AE%AF%E4%BA%91%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Fother.php%22%2C%22%24latest_utm_medium%22%3A%22cpd%22%7D%2C%22%24device_id%22%3A%2217868f4b2442e6-0dbd0c103fbeda-5771031-1327104-17868f4b24578c%22%7D; loading=agree; UserCookie=b5e8696d89c9be7cc87d70e96edd126db7eb028fdd9de3cd81f85e53c10ccf0c; IsLogin=1'
}
def get_txzp():for i in range(1):url = 'https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1631625383162&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn'.format(i)rs = requests.session()r = rs.get(url, headers=headers)r.encoding = 'utf-8'#soup = BeautifulSoup(r.content, 'lxml')#trees = etree.HTML(r.text)m=r.textM = json.loads(m)M1 = M["Data"]M2 = M1['Posts']for j in M2:print(j)get_txzp()

  • 按照字典名依次提取内容并保存在一个列表内输出
M1 = M["Data"]M2 = M1['Posts']for i in M2:data = []data.append(i['RecruitPostName'])data.append(i['CountryName'])data.append(i['LocationName'])data.append(i['BGName'])data.append(i['ProductName'])data.append(i['CategoryName'])data.append(i['Responsibility'])data.append(i['LastUpdateTime'])data.append(i['PostURL'])print(data)

  • 这边输出有点不太整齐,完整代码会整理一下

完整代码

from lxml import etree
from bs4 import BeautifulSoup
import requests
import jsonheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36','cookie':'_ga=GA1.2.741549489.1600008709; pgv_pvi=8093896704; pgv_pvid=378075616; _gcl_au=1.1.1666053754.1630843983; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22100011930117%22%2C%22first_id%22%3A%22e22e55959d05db4ed0929acd767433c8%40devS%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E4%BB%98%E8%B4%B9%E5%B9%BF%E5%91%8A%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E8%85%BE%E8%AE%AF%E4%BA%91%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Fother.php%22%2C%22%24latest_utm_medium%22%3A%22cpd%22%7D%2C%22%24device_id%22%3A%2217868f4b2442e6-0dbd0c103fbeda-5771031-1327104-17868f4b24578c%22%7D; loading=agree; UserCookie=b5e8696d89c9be7cc87d70e96edd126db7eb028fdd9de3cd81f85e53c10ccf0c; IsLogin=1'
}def get_txzp():for c in range(1,11):url='https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1631625383162&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn'.format(c)rs = requests.session()r = rs.get(url, headers=headers)r.encoding = 'utf-8'#soup = BeautifulSoup(r.content, 'lxml')#trees = etree.HTML(r.text)m=r.textM=json.loads(m)M1=M["Data"]M2=M1['Posts']for i in M2:print("="*300)data=[]#print(i)#print(i['RecruitPostName']+' '+i['CountryName']+' '+i['LocationName']+' '+i['BGName']+' '+i['ProductName']+' '+i[ 'CategoryName']+' '+i['Responsibility']+' '+i['LastUpdateTime']+' '+i['PostURL'])data.append(i['RecruitPostName'])data.append(i['CountryName'])data.append(i['LocationName'])data.append(i['BGName'])data.append(i['ProductName'])data.append(i[ 'CategoryName'])data.append(i['Responsibility'])data.append(i['LastUpdateTime'])data.append(i['PostURL'])for j in data:print(j)if __name__ == "__main__":get_txzp()

实现结果

从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧相关推荐

  1. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  2. 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  3. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  4. 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  5. 从入门到入土:Python爬虫学习|实例练手|爬取百度产品列表|Xpath定位标签爬取|代码注释详解

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  7. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

  8. python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件

    第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字"python",然后搜索,显示如下搜索结果 从url连接中可以得 ...

  9. 【Python爬虫学习笔记12】Ajax数据爬取简介

    有时候在我们设计利用requests抓取网页数据的时候,会发现所获得的结果可能与浏览器显示给我们的不一样:比如说有的信息我们通过浏览器可以显示,但一旦用requests却得不到想要的结果.这种现象是因 ...

最新文章

  1. Matlab编程与数据类型 -- 奇数阶魔方矩阵的编程
  2. 大学生就业重心能否“二线城市化”?
  3. B/S模式下如何使软件屏蔽系统热键
  4. RuoYi后台系统权限管理解析
  5. C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器
  6. h3c怎么创建虚拟服务器,h3c 设置虚拟服务器
  7. c 连接mysql后 怎么用_使用C语言连接mysql,并进行操作
  8. 删除表报正在使用_U盘拔出要不要点quot;安全删除USB硬件quot;退出?
  9. C#中找不到MouseWheel事件的解决办法
  10. Java继承_java练习本(20190617)
  11. 使用Apache的ab工具进行压力测试
  12. RedHat Linux 9.0 操作系统测试题2
  13. 微信公众平台开发中提示“该公众号提供的服务出现故障”问题解决
  14. Java Caledar类(日历类)判断本周周数
  15. ajax调取mysql数据显示在html_ajax实现从后台拿数据显示在HTML前端的方法
  16. 人脸识别技术在智慧城城市建设中的深度应用
  17. ubuntu VCS+verdi安装教程
  18. Brain:临床前和早期阿尔茨海默病的睡眠和纵向认知表现
  19. HTAP 应该是一种需求而不是一款产品
  20. 柠萌影视再次冲刺港股:年营收持续两年下滑​ 腾讯是股东

热门文章

  1. 【干货】PEP8风格指南
  2. 彻底理解Python切片
  3. 经典卷积神经系列(Inception v1\v2\v3\v4、ResNet、ResNext、DenseNet、SENet)
  4. 数据分析5大关键环节
  5. 敏捷开发中史诗故事与用户故事的颗粒度
  6. 【算法导论】贪心算法,递归算法,动态规划算法总结
  7. Borland Enterprise Core Object II (ECO II)第一次接觸
  8. poj 3126 BFS
  9. Python3安装cx_Oracle连接oracle数据库实操总结
  10. Linux防火墙配置与管理(16)