python2使用bs4爬取腾讯社招过程解析


Posted in Python onAugust 14, 2019

目的:获取腾讯社招这个页面的职位名称及超链接 职位类别 人数 地点和发布时间

要求:使用bs4进行解析,并把结果以json文件形式存储

注意:如果直接把python列表没有序列化为json数组,写入到json文件,会产生中文写不进去到文件,所以要序列化并进行utf-8编码后写入文件。

# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup as bs
import json
url = 'https://hr.tencent.com/position.php?'
params = {
  'start':'10'
}
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
# 获取腾讯社招某个页面的页面源码
html = requests.get(url, params = params, headers = headers).text
# 创建soup对象,使用lxml解析器
soup = bs(html,'lxml')
# 选取类名为odd和even的tr标签
result1 = soup.select('tr[class="odd"]')
result2 = soup.select('tr[class="even"]')
# 列表拼接 l = [1,2] + [3,4],则列表l为[1,2,3,4]
result = result1 + result2
# 把数据存放在列表里面,列表的每个元素都为一个字典
l = []
data = {}
for item in result:
  # 获取标签的文本内容
  job = item.find_all('a')[0].get_text().encode('utf-8')
  category = item.find_all('td')[1].get_text().encode('utf-8')
  number = item.find_all('td')[2].get_text().encode('utf-8')
  address = item.find_all('td')[3].get_text().encode('utf-8')
  public_time = item.find_all('td')[4].get_text().encode('utf-8')
  # 获取标签的属性值
  link = item.find_all('a')[0].attrs['href']
  fulllink = ('https://hr.tencent.com/' + link).encode('utf-8')
  data['job'] = job
  data['category'] = category
  data['number'] = number
  data['address'] = address
  data['public_time'] = public_time
  data['fulllink'] = fulllink
  l.append(data)
  # 原来中文写不到文件里面的报错原因,没把python列表序列化为json数组
  # with open('tencent.json','a') as f:
  #  f.write(str(data) + '\n')
# 方法1存储数据,上面字典的值不用先进行utf-8编码
# 把数据以json文件形式存储
# f = open('tencent.json','a')
# 把python列表序转化为json对象。本地操作常用的是load dump。网络操作常用的loads dumps,而loads常用来把json格式转化为python格式,dumps把python格式序列为json格式
# dictdata = json.dumps(l,ensure_ascii=False)
# 把json对象写入json文件
# f.write(dictdata.encode('utf-8'))
# f.close()

# 把数据存入tencent.json文件内
json.dump(l,open('tencent.json','a'),ensure_ascii=False)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中的模版相关知识
Jul 15 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
python在非root权限下的安装方法
Jan 23 Python
python实现聊天小程序
Mar 13 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
Django中的FBV和CBV用法详解
Sep 15 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
Python创建空列表的字典2种方法详解
Feb 13 Python
python针对Oracle常见查询操作实例分析
Apr 30 Python
解决python存数据库速度太慢的问题
Apr 23 Python
详解用python计算阶乘的几种方法
Aug 14 #Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 #Python
用Python抢火车票的简单小程序实现解析
Aug 14 #Python
Python定时任务随机时间执行的实现方法
Aug 14 #Python
查看Python依赖包及其版本号信息的方法
Aug 13 #Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 #Python
Python编写带选项的命令行程序方法
Aug 13 #Python
You might like
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
如何对PHP程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
用PHP实现小型站点广告管理
2006/10/09 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php中动态调用函数的方法
2015/03/16 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
js尾调用优化的实现
2019/05/23 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python中交换两个元素的实现方法
2018/06/29 Python
YUV转为jpg图像的实现
2019/12/09 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
Python 中Operator模块的使用
2021/01/30 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
物业管理应届生求职信
2013/10/28 职场文书
小学班主任寄语大全
2014/04/04 职场文书
社区灵活就业证明
2014/11/03 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
孙振耀退休感言
2015/08/01 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库