【大作业之爬虫实战+数据分析与可视化处理上】——案例——如桃花来

目的任务:

目的任务 爬取租房网对应元素:

    1. 租房名
    1. 每月的价格
    1. 室内规格构造
    1. 房间大小
    1. 交通信息
    1. 保存数据到excel表格中
    1. 做数据清洗
    1. 数据可视化呈现

设计要求:

设计要求:

  1. 以类的方式书写,简洁明了。能够促进学生对于python程序的理解,和结构化的构造。提高代码的可读性和复用性。
  2. 利用selenium自动化程序进行爬取信息,便于体会pythoon代码简洁优雅的特点。
  3. 对excel中的数据进行美化和可视化报表,提高展示的友好性

代码演示:

我们将代码进行分段讲解,便于理解。

1.导包:

import time
import random
from selenium import webdriver #驱动浏览器
from selenium.webdriver.common.by import By #选择器,用于选择
from selenium.webdriver.common.keys import Keys #按键,起到鼠标点击的作用
from selenium.webdriver.support import expected_conditions as EC #等待所有标签加载完毕
from selenium.webdriver.support.wait import WebDriverWait #等待页面加载完毕,寻找某些元素
from openpyxl import workbook #插入excel模块

2. 创建excel的工作表:

#实例化一个excel对象
wb = workbook.Workbook()
#激活当前表
wt = wb.active
#设置表头,以列表形式传参
wt.append(["租房类型","租房名称","租房价格","交通环境","室内大小","室内构造"])

3.用类去书写:

class Spdier(object):
    def __init__(self):
        #启动浏览器
        self.driver = webdriver.Chrome()
        #起始地址
        self.start_url = "https://bj.58.com/chuzu/"

    def get_data(self):
        #发出请求
        self.driver.get(self.start_url)
        time.sleep(2)
        #租房名称和租房类型
        house_names = self.driver.find_elements(By.XPATH,'//div[@class="des"]/h2/a')
        #月租价格
        house_prices = self.driver.find_elements(By.XPATH,'//div[@class="money"]/b')
        #交通环境
        house_traffics = self.driver.find_elements(By.XPATH,'//div[@class="des"]/p[@class="infor"]')
        #房间大小和室内规格构造
        house_areas = self.driver.find_elements(By.XPATH,'//div[@class="des"]/p[@class="room"]')
        flag = 0
        for house_name,house_price,house_traffic,house_area in zip(house_names,house_prices,house_traffics,house_areas):
            house_name_text = house_name.text
            #保存用的租房类型
            t_house_type = house_name_text.split("|")[0]

            try:
                #保存用的租房名
                t_house_name = house_name_text.split("|")[1]
            except:
                t_house_name = house_name_text
            #保存用的租房价格
            t_house_price = house_price.text

            #保存用的交通环境
            t_house_traffic = house_traffic.text

            # 保存用的房间大小
            house_area_text = house_area.text
            t_house_area = house_area_text.split(" ")[-1]
            #保存用的房间构造
            t_house_consist = house_area_text.split(" ")[0]
            #执行保存函数
            self.save_data(t_house_type,t_house_name,t_house_price,t_house_traffic,t_house_area,t_house_consist)

    def save_data(self,t_house_type,t_house_name,t_house_price,t_house_traffic,t_house_area,t_house_consist):
        wt_list = [t_house_type,t_house_name,t_house_price,t_house_traffic,t_house_area,t_house_consist]
        wt.append(wt_list)
        wb.save("租房网情况.xlsx")

    #翻页函数
    def page_through(self):
        for i in range(20):
            self.get_data()
            time.sleep(random.randint(2,4))
            #点击翻页按钮
            text_click =self.driver.find_element(By.XPATH,'//*[@id="pager_wrap"]/div/a[4]').click()

        

    def run(self):
        self.page_through()


if __name__ == '__main__':
    zufang = Spdier()
    zufang.run()

对excel表格进行相关处理:

原始数据:

在这里插入图片描述

信息非常杂乱,而且有很多脏数据和存在规律不整齐的问题。我们需要进行数据清洗,将数据尽可能的转化为数字。

几个关键快捷键:

  • 1.ctrl +g定位
  • 2.ctrl+h查找和替换

数据清洗之后:

运用方式:
	1.冻结首项,保证下滑数据依旧可以看到数据表头
	2.开始>>>条件格式,对表格进行美化

租房类型中1表示整租,0表示单间

在这里插入图片描述

对excel做了一点简单的操作是不是清楚多了?接下来就是数据透视表和可视化的操作了,我们请移步本文下册

tips:
若是想了解excel关于数据可视化的处理,可以关注一下,后面会详细更新excel对于数据可视化的使用

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如桃花来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值