温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python2如何使用bs4爬取腾讯社招

发布时间:2021-08-12 10:57:20 来源:亿速云 阅读:174 作者:小新 栏目:开发技术

这篇文章主要介绍了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)

感谢你能够认真阅读完这篇文章,希望小编分享的“python2如何使用bs4爬取腾讯社招”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI