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 快速排序代码
Nov 23 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Django 连接sql server数据库的方法
Jun 30 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
python实现无边框进度条的实例代码
Dec 30 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
jqTransform美化表单
2015/10/10 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
原生JS实现天气预报
2020/06/16 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python实现读取并显示图片的两种方法
2017/01/13 Python
Python随机读取文件实现实例
2017/05/25 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
python把1变成01的步骤总结
2019/02/27 Python
Python变量访问权限控制详解
2019/06/29 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
python文件读取失败怎么处理
2020/06/23 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
Java如何支持I18N?
2016/10/31 面试题
园艺师求职信
2014/03/10 职场文书
家长对老师的感言
2014/03/11 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
品质主管岗位职责
2014/03/16 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
颐和园导游词
2015/01/30 职场文书
大学毕业生个人总结
2015/02/28 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS