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的Zato发送AMQP消息的教程
Apr 16 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
对numpy中向量式三目运算符详解
Oct 31 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Python中整数的缓存机制讲解
Feb 16 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
python 梯度法求解函数极值的实例
Jul 10 Python
python3实现微型的web服务器
Sep 03 Python
Python爬虫爬取微信朋友圈
Aug 06 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
应届生自我鉴定
2013/12/11 职场文书
展览会邀请函
2015/02/02 职场文书
继续教育个人总结
2015/03/03 职场文书
教师自荐信范文
2015/03/06 职场文书
财务统计员岗位职责
2015/04/14 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL