python2使用bs4爬取腾讯社招过程解析

 更新时间:2019年08月14日 10:08:50   作者:silence-cc  
这篇文章主要介绍了python2使用bs4爬取腾讯社招过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

目的:获取腾讯社招这个页面的职位名称及超链接 职位类别 人数 地点和发布时间

要求:使用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输入输出从键盘到文件实战全面指南

    这篇文章主要为大家介绍了Python输入输出从键盘到文件实战全面指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 用Python代码来解图片迷宫的方法整理

    用Python代码来解图片迷宫的方法整理

    这篇文章主要介绍了用Python代码来解图片迷宫的方法整理,本文精选了StackOverflow相关人气问题上的几个回答,需要的朋友可以参考下
    2015-04-04
  • Python 操作Excel-openpyxl模块用法实例

    Python 操作Excel-openpyxl模块用法实例

    openpyxl 模块是一个读写 Excel 2010 文档的 Python 库,如果要处理更早格式的 Excel 文 档,需要用到额外的库,openpyxl 是一个比较综合的工具,能够同时读取和修改 Excel 文档,这篇文章主要介绍了Python 操作Excel-openpyxl模块使用,需要的朋友可以参考下
    2023-05-05
  • python机器学习Sklearn实战adaboost算法示例详解

    python机器学习Sklearn实战adaboost算法示例详解

    这篇文章主要为大家介绍了python机器学习Sklearn实战adaboost算法的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 使用Python将PDF表格提取到文本,CSV和Excel文件中

    使用Python将PDF表格提取到文本,CSV和Excel文件中

    本文将介绍如何使用简单的Python代码从PDF文档中提取表格数据并将其写入文本、CSV和Excel文件,从而轻松实现PDF表格的自动化提取,有需要的可以参考下
    2024-11-11
  • 深入理解Python3 内置函数大全

    深入理解Python3 内置函数大全

    本篇文章主要介绍了Python3 内置函数,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 使用python将微信image下.dat文件解密为.png的方法

    使用python将微信image下.dat文件解密为.png的方法

    这篇文章主要介绍了使用python将微信image下.dat文件解密为.png的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • python正则实现计算器功能

    python正则实现计算器功能

    这篇文章主要为大家详细介绍了python正则实现计算器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • python pandas dataframe如何获取除了指定列以外的所有列

    python pandas dataframe如何获取除了指定列以外的所有列

    这篇文章主要介绍了python pandas dataframe如何获取除了指定列以外的所有列问题,具有很好的参考价值,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python dlib人脸识别代码实例

    python dlib人脸识别代码实例

    这篇文章主要介绍了python dlib人脸识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论