首页 > 编程语言 >Python案例题目,入门小白题

Python案例题目,入门小白题

时间:2024-05-24 20:25:13浏览次数:17  
标签:整租 jobs 入门 Python price 小白题 print import name

1.抓取链家前十页的数据

链家网址:长沙房产网_长沙房地产_长沙房产门户(长沙链家网)

1.1.计算均价和总价

import time
​
from selenium import webdriver
from selenium.webdriver.common.by import By
​
driver = webdriver.Chrome()
driver.get("https://cs.lianjia.com/zufang/rs岳麓区/")
​
# 总价
total = 0
# 记录房间个数
size = 0
​
for i in range(2):
    elements = driver.find_elements(By.CSS_SELECTOR, '.content__list--item--main')
    print(f"第{i+1}页的数据:")
    for el in elements:
        # 获取租房标题
        name = el.find_element(By.CSS_SELECTOR, '.content__list--item--title a').text
        # 判断是否包含独栋信息
        if name.__contains__("独栋"):
            continue
        # 获取租房的价格
        price = el.find_element(By.CSS_SELECTOR, '.content__list--item-price em').text
        print(f"name={name},price={price}")
        total += float(price)
    # 记录房间的个数
    size += len(elements)
    # 点击下一页
    driver.find_element(By.CSS_SELECTOR,'a.next').click()
    # 模拟睡眠6秒
    time.sleep(2)
​
print(f"总价:{total},岳麓区的租房均价为:{total/size}")

1.2.计算的类型(整租,合租)

str = """
name=整租·万科里金域国际 4室2厅 南,price=4500
name=独栋·魔方公寓 长沙航天溪湖店 连锁公寓直租无中介费 1室1厅,price=1800
name=整租·潇湘奥林匹克花园 1室1厅 南,price=2200
name=合租·达美美立方 5居室 复式 南卧,price=999
name=整租·万科里金域国际 3室2厅 南,price=3400
"""
# 计算的类型(整租,合租)
print("整租:", str.count("整租"))
print("合租:", str.count("合租"))

1.3.计算的房型

由于在爬取的数据中存在“居室”“室”的区别,所以请将所有的“居室”数据替换成“室”

str = """
name=整租·万科里金域国际 4室2厅 南,price=4500
name=独栋·魔方公寓 长沙航天溪湖店 连锁公寓直租无中介费 1室1厅,price=1800
name=整租·潇湘奥林匹克花园 1室1厅 南,price=2200
name=合租·达美美立方 5居室 复式 南卧,price=999
name=整租·万科里金域国际 3室2厅 南,price=3400
"""
import re
import collections
st = str.replace('居室','室')
rs = re.findall(r'\d室',st)
print(rs)
print(collections.Counter(rs))

2.抓取boss直聘前十页的数据

boss直聘网址:「北京招聘网」海量北京人才招聘信息 - BOSS直聘

2.1.抓取boss直聘前十页的数据

其中参数city=101020100是中国天气网全城市代码weather_cityId

from selenium import webdriver
from selenium.webdriver.common.by import By
import time 
​
driver = webdriver.Chrome()
driver.get("https://www.zhipin.com/web/geek/job?query=java&city=101020100")
​
jobs = []
​
for i in range(3):
    time.sleep(6)
    elements = driver.find_elements(By.CSS_SELECTOR, ".job-card-wrapper")
    for el in elements:
        # 获取地区
        area = el.find_element(By.CSS_SELECTOR,"span.job-area").text
        # 获取薪酬
        salary = el.find_element(By.CSS_SELECTOR,"span.salary").text
        print(f"area={area},salary={salary}")
        jobs.append({
            'area':area,
            'salary':salary
        })
    driver.find_element(By.CSS_SELECTOR,".selected+a").click()
​
print(jobs)

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)}")

标签:整租,jobs,入门,Python,price,小白题,print,import,name
From: https://blog.csdn.net/Love_Ban/article/details/139118565

相关文章

  • XⅢ-Python解析网页
    目录        1.requests模块        2.BeautifulSoup        2.1.什么是BeautifulSoup        2.2.解析器        2.3.安装与配置        2.4.快速入门        2.4.1解析数据        标签   ......
  • 打印9*9乘法表(递归或压缩矩阵)python
    打印9*9表defprint_multiplication_table(row,col):ifrow>10:return#递归结束条件ifcol==row:print()#换行print_multiplication_table(row+1,1)#递归调用下一行else:print(f"{row-1}*{col}={(......
  • 12个Python技巧你Get了吗?
    不啰嗦,直接上干货,以下内容绝对可以帮到你哟1.列表理解列表理解可以代替丑陋的for循环来填充列表。列表理解的基本语法为:[expressionforiteminlistifconditional]一个非常简单的示例,用数字序列填充列表:[iforiinrange(10)]因为可以使用表达式,所以还可以进行......
  • 4小时学完!15年技术大牛用247个实战案例剖析的Python教程
    今天给小伙伴们分享一份15年技术大牛用247个实战案例剖析的Python教程,这份教程全程彩图讲解,告别枯燥!60秒学会⼀个⼩例⼦,带你系统学习Python,从⼊门到⼤师。涵盖了Python基础、Python字符串和正则、Python⽂件和⽇期、Python三⼤利器、Python绘图、Python之坑、Python第三⽅包、......
  • GitHub上新!14个Python项目详细教程(附完整代码)
    Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。限于文章篇幅原因,只能以截图的形式展示出......
  • python将矩阵转化为灰度图
    1.python将矩阵转化为灰度图的方法要将一个矩阵(通常是一个二维数组,其中每个元素代表一个像素的灰度值)转换为灰度图,我们可以使用Python的matplotlib库。下面是一个详细的步骤和完整的代码示例:(1)准备数据:首先,我们需要一个二维数组(矩阵),其中每个元素代表一个灰度值。灰度值通常在0(黑......
  • python将矩阵转化为灰度图
    1.python将矩阵转化为灰度图的方法要将一个矩阵(通常是一个二维数组,其中每个元素代表一个像素的灰度值)转换为灰度图,我们可以使用Python的matplotlib库。下面是一个详细的步骤和完整的代码示例:(1)准备数据:首先,我们需要一个二维数组(矩阵),其中每个元素代表一个灰度值。灰度值通常在0......
  • 小白必看!AI产品经理的机器学习算法入门指南
    之前我们聊过关于人工智能的行业、产品经理的第二曲线以及两个岗位的区别,那这次我们再深入一层——趣解机器学习算法。机器学习算法可能听起来有些高深莫测,我明白很多人包括我一开始都感到头疼,我尽量不用公式,只用案例的形式来呈现,我们从整体到局部逐步深入。01机器学习算......
  • 50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!
    介绍每日一题系列已经更新了50道题目啦!题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。原文链接:50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!欢迎点击取阅!......
  • python最新版本安装
     https://www.cnblogs.com/kimyeee/p/7250560.html 1,依赖环境yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel //如果不安装,会导致部分包安装失败;yuminstalll......