1.抓取链家前十页的数据
链家网址:长沙房产网_长沙房地产_长沙房产门户(长沙链家网)
2.抓取boss直聘前十页的数据
boss直聘网址:「北京招聘网」海量北京人才招聘信息 - BOSS直聘
2.1.抓取boss直聘前十页的数据
2.2.将获取数据本地序列化
Python的pickle
模块是一种用于序列化(将对象转换为字节流)和反序列化(将字节流转换回对象)Python对象的工具。它可以将Python对象保存到文件中或从文件中加载对象。
pickle
模块还有其他一些有用的函数和特性。以下是一些常见的功能:
-
pickle.dumps(obj)
:将对象序列化为字节流,但不保存到文件中。 -
pickle.loads(bytes_obj)
:从字节流中加载对象,而不是从文件中加载。 -
pickle.dump(obj, file)
:将对象序列化并保存到文件中。 -
pickle.load(file)
:从文件中加载序列化的对象。
# 将获取到的结果保存到本地
p = Path("jobs.txt")
p.touch()
# 通过pickle.dump实现数据序列化
pickle.dump(jobs,p.open(mode="wb"))
2.3.计算每个区的需求个数与均价
# 计算每个区的需求个数与均价
jobs = pickle.load(open('jobs.txt',mode="rb"))
print(jobs)
areas=list(map(lambda a: "".join(re.findall(r'.*?·(.*?)·.*?',a['area'])),jobs))
print(areas)
import collections
rs = collections.Counter(areas)
for k,v in rs.items():
print(f"【{k}】的工作岗位需求数:{v}")
# 获取该区的工作集合
ps = list(filter(lambda e: e['area'].count(k) > 0, jobs))
# 获取该区的薪酬总价
total = functools.reduce(lambda a,b:a+int(b['salary'].split('-')[0]),ps,0)
print(f"该区的工作入门平均薪酬:{total/len(ps)}")