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中__slots__属性介绍与基本使用方法
Sep 05 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
详解python配置虚拟环境
Apr 08 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
如何基于python实现年会抽奖工具
Oct 20 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
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
PHP在线书签系统分享
2016/01/04 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
vue+php实现的微博留言功能示例
2019/03/16 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python递归函数绘制分形树的方法
2018/06/22 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
2014升学宴答谢词
2014/01/26 职场文书
简历的自我评价范文
2014/02/04 职场文书
xxx同志考察材料
2014/02/07 职场文书
法律进机关实施方案
2014/03/12 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
师范生见习报告
2014/10/31 职场文书
店面出租协议书范本
2014/11/28 职场文书
卫生主题班会
2015/08/14 职场文书
2016年寒假家长评语
2015/10/10 职场文书
党员理论学习心得体会
2016/01/21 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
python读取mat文件生成h5文件的实现
2022/07/15 Python