从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
仅用于学习交流,若用于商业行为或违法行为,后果自负
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来找工作吧相关推荐
- 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:Python爬虫学习|实例练手|爬取百度产品列表|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表
hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...
- python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析
原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...
- python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件
第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字"python",然后搜索,显示如下搜索结果 从url连接中可以得 ...
- 【Python爬虫学习笔记12】Ajax数据爬取简介
有时候在我们设计利用requests抓取网页数据的时候,会发现所获得的结果可能与浏览器显示给我们的不一样:比如说有的信息我们通过浏览器可以显示,但一旦用requests却得不到想要的结果.这种现象是因 ...
最新文章
- Matlab编程与数据类型 -- 奇数阶魔方矩阵的编程
- 大学生就业重心能否“二线城市化”?
- B/S模式下如何使软件屏蔽系统热键
- RuoYi后台系统权限管理解析
- C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器
- h3c怎么创建虚拟服务器,h3c 设置虚拟服务器
- c 连接mysql后 怎么用_使用C语言连接mysql,并进行操作
- 删除表报正在使用_U盘拔出要不要点quot;安全删除USB硬件quot;退出?
- C#中找不到MouseWheel事件的解决办法
- Java继承_java练习本(20190617)
- 使用Apache的ab工具进行压力测试
- RedHat Linux 9.0 操作系统测试题2
- 微信公众平台开发中提示“该公众号提供的服务出现故障”问题解决
- Java Caledar类(日历类)判断本周周数
- ajax调取mysql数据显示在html_ajax实现从后台拿数据显示在HTML前端的方法
- 人脸识别技术在智慧城城市建设中的深度应用
- ubuntu VCS+verdi安装教程
- Brain:临床前和早期阿尔茨海默病的睡眠和纵向认知表现
- HTAP 应该是一种需求而不是一款产品
- 柠萌影视再次冲刺港股:年营收持续两年下滑​ 腾讯是股东