#encoding:utf-8
from bs4 import BeautifulSoup
html = '''
职位名称 | 职位类别 | 人数 | 地点 | 发布时间 |
SNG08-微视视频推荐后台开发(深圳) | 技术类 | 3 | 深圳 | 2018-08-12 |
GY0-数据产品经理 | 产品/项目类 | 1 | 深圳 | 2018-08-12 |
WXG02-134 微信数据平台运营工程师(广州) | 技术类 | 1 | 广州 | 2018-08-12 |
SNG17-QQ钱包后台开发工程师(深圳) | 技术类 | 1 | 深圳 | 2018-08-12 |
25924-互娱游戏网站运维工程师(上海) | 技术类 | 1 | 上海 | 2018-08-12 |
SNG17-支付后台开发工程师(深圳) | 技术类 | 5 | 深圳 | 2018-08-12 |
27092-应用宝商业化后台开发(深圳) | 技术类 | 2 | 深圳 | 2018-08-12 |
25927-高级测试开发工程师(深圳) | 技术类 | 1 | 深圳 | 2018-08-12 |
22989-云服务开发工程师(NLP方向)(北京) | 技术类 | 1 | 北京 | 2018-08-12 |
23673-高级全栈工程师(偏向后端)(北京) | 技术类 | 1 | 北京 | 2018-08-12 |
共
513个职位
|
'''
soup = BeautifulSoup(html,"lxml")
#1.获取所有的tr标签
# trs = soup.find_all('tr')
# for tr in trs:
# print(tr)
# print('='*30)
# print(type(tr))
#2.获取第二个tr标签
# tr = soup.find_all('tr',limit=2)[1]
# print(tr)
#3.获取所有class等于even的标签
# trs = soup.find_all('tr',class_='even')
# for tr in trs:
# print(tr)
# print('='*30)
#4.将所有id等于test,class也等于test的a标签提取出来
# aList = soup.find_all('a',id='prev',class_='noactive')
# for a in aList:
# print(a)
#5.获取所有a标签的href属性
# aList = soup.find_all('a')
# for a in aList:
#1.通过下标操作的方式
# href = a['href']
# print(href)
#2.通过attrs属性的方式
# href = a.attrs['href']
# print(href)
#6.获取所有职位信息,并纯文本要求
trs = soup.find_all('tr')[1:]
movies = []
for tr in trs:
movie = { }
#1.第一种方式,(ps:数据格式问题,暂时有bug)
tds = tr.find_all('td')
title = tds[0].string
category = tds[1].string
nums = tds[2].string
city = tds[3].string
pubtime = tds[4].string
movie['title'] = title
movie['category'] = category
movie['nums'] = nums
movie['city'] = city
movie['pubtime'] = pubtime
movies.append(movie)
##2。第二种方式
# infos = list(tr.stripped_strings)
# movie['title'] = infos[0]
# movie['category'] = infos[1]
# movie['nums'] = infos[2]
# movie['city'] = infos[3]
# movie['pubtime'] = infos[4]
# movies.append(movie)
print(movies)