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实现的阳历转阴历(农历)算法
Apr 25 Python
python编写的最短路径算法
Mar 25 Python
Python端口扫描简单程序
Nov 10 Python
import的本质解析
Oct 30 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
python实现贪吃蛇双人大战
Apr 18 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python解惑之True和False详解
2017/04/24 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
数学检讨书1000字
2014/02/24 职场文书
环保公益广告语
2014/03/13 职场文书
交通事故协议书
2014/04/15 职场文书
班风口号
2014/06/18 职场文书
公务员政审材料
2014/12/23 职场文书
2014年底个人工作总结
2015/03/10 职场文书
小兵张嘎观后感300字
2015/06/03 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
超详细Python解释器新手安装教程
2021/05/10 Python
总结一些Java常用的加密算法
2021/06/11 Java/Android