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程序员易犯的错误
Dec 15 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Python实现多属性排序的方法
Dec 05 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
python psutil模块使用方法解析
Aug 01 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 Python
python中调试或排错的五种方法示例
Sep 12 Python
Python pip 安装与使用(安装、更新、删除)
Oct 06 Python
django框架ModelForm组件用法详解
Dec 11 Python
适合Python初学者的一些编程技巧
Feb 12 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读取IMAP邮件
2006/10/09 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Python打印不合法的文件名
2020/07/31 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
中英文求职信范文
2014/01/27 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
尊师重教演讲稿
2014/09/04 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
重阳节简报
2015/07/20 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS