国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python教你一招,爬取鏈家二手房并做數(shù)據(jù)可視化分析

這篇具有很好參考價值的文章主要介紹了Python教你一招,爬取鏈家二手房并做數(shù)據(jù)可視化分析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言

數(shù)據(jù)采集的步驟是固定:

  1. 發(fā)送請求, 模擬瀏覽器對于url地址發(fā)送請求
  2. 獲取數(shù)據(jù), 獲取網(wǎng)頁數(shù)據(jù)內(nèi)容 --> 請求那個鏈接地址, 返回服務(wù)器響應(yīng)數(shù)據(jù)
  3. 解析數(shù)據(jù), 提取我們需要的數(shù)據(jù)內(nèi)容
  4. 保存數(shù)據(jù), 保存本地文件

所需模塊

win + R 輸入cmd 輸入安裝命令 pip install 模塊名 (如果你覺得安裝速度比較慢, 你可以切換國內(nèi)鏡像源)

# 數(shù)據(jù)請求模塊 第三方模塊 需要安裝 pip install requests
import requests
# 數(shù)據(jù)解析模塊 第三方模塊 需要安裝 pip install parsel
import parsel
# 導(dǎo)入csv模塊 內(nèi)置模塊 不需要安裝
import csv  # 固定模板
# 導(dǎo)入pandas模塊
import pandas as pd

二手房源數(shù)據(jù)獲取

請求數(shù)據(jù)

# 模擬瀏覽器
headers = {
    # 用戶代理 表示瀏覽器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
}
# 請求鏈接
url = 'https://cs.lianjia.com/ershoufang'
# 發(fā)送請求
response = requests.get(url=url, headers=headers)
# 輸出內(nèi)容 <Response [200]> 響應(yīng)對象 表示請求成功
print(response)

python爬取二手房,python,信息可視化,開發(fā)語言

解析數(shù)據(jù)

我們這次選用css選擇器: 根據(jù)標(biāo)簽屬性提取數(shù)據(jù)內(nèi)容

  • 獲取所有房源所在li標(biāo)簽
selector = parsel.Selector(response.text)  # 選擇器對象
# 獲取所有房源所在li標(biāo)簽
lis = selector.css('.sellListContent li .info')
  • for循環(huán)遍歷
for li in lis:
    title = li.css('.title a::text').get()  # 標(biāo)題
    area_info = li.css('.positionInfo a::text').getall()  # 區(qū)域信息
    area_1 = area_info[0]  # 小區(qū)
    area_2 = area_info[1]  # 區(qū)域
    totalPrice = li.css('.totalPrice span::text').get()  # 總價
    unitPrice = li.css('.unitPrice span::text').get().replace('元/平', '')  # 單價
    houseInfo = li.css('.houseInfo::text').get().split(' | ')  # 房源信息
    HouseType = houseInfo[0]  # 戶型
    HouseArea = houseInfo[1].replace('平米', '')  # 面積
    HouseFace = houseInfo[2]  # 朝向
    HouseInfo_1 = houseInfo[3]  # 裝修
    fool = houseInfo[4]  # 樓層
    HouseInfo_2 = houseInfo[-1]  # 建筑結(jié)構(gòu)
    href = li.css('.title a::attr(href)').get()  # 詳情頁
    dit = {
        '標(biāo)題': title,
        '小區(qū)': area_1,
        '區(qū)域': area_2,
        '總價': totalPrice,
        '單價': unitPrice,
        '戶型': HouseType,
        '面積': HouseArea,
        '朝向': HouseFace,
        '裝修': HouseInfo_1,
        '樓層': fool,
        '年份': date,
        '建筑結(jié)構(gòu)': HouseInfo_2,
        '詳情頁': href,
    }
    print(dit)

python爬取二手房,python,信息可視化,開發(fā)語言
保存數(shù)據(jù)

f = open('二手房.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '標(biāo)題',
    '小區(qū)',
    '區(qū)域',
    '總價',
    '單價',
    '戶型',
    '面積',
    '朝向',
    '裝修',
    '樓層',
    '年份',
    '建筑結(jié)構(gòu)',
    '詳情頁',
])
csv_writer.writeheader()

python爬取二手房,python,信息可視化,開發(fā)語言

接下來就是數(shù)據(jù)可視化

二手房源戶型分布

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(house_type, house_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源戶型分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
#     .render("pie_scroll_legend.html")
)
c.load_javascript()

python爬取二手房,python,信息可視化,開發(fā)語言
二手房源朝向分布

face_type = df['朝向'].value_counts().index.to_list()
face_num = df['朝向'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源朝向分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言
二手房源裝修分布

face_type = df['裝修'].value_counts().index.to_list()
face_num = df['裝修'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源裝修分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言
二手房源年份分布

face_type = df['年份'].value_counts().index.to_list()
face_num = df['年份'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源年份分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言
二手房源建筑結(jié)構(gòu)分布

face_type = df['建筑結(jié)構(gòu)'].value_counts().index.to_list()
face_num = df['建筑結(jié)構(gòu)'].value_counts().to_list()
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(face_type, face_num)
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="二手房源建筑結(jié)構(gòu)分布"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
#     .render("pie_scroll_legend.html")
)
c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言
各大區(qū)域房價平均價

avg_salary = df.groupby('區(qū)域')['總價'].mean()
CityType = avg_salary.index.tolist()
CityNum = [int(a) for a in avg_salary.values.tolist()]
from pyecharts.charts import Bar
# 創(chuàng)建柱狀圖實(shí)例
c = (
    Bar()
    .add_xaxis(CityType)
    .add_yaxis("", CityNum)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各大區(qū)域房價平均價"),
        visualmap_opts=opts.VisualMapOpts(
            dimension=1,
            pos_right="5%",
            max_=30,
            is_inverse=True,
        ),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45))  # 設(shè)置X軸標(biāo)簽旋轉(zhuǎn)角度為45度
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        ),
    )
)

c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言
各大區(qū)域房價單價平均價格

import pandas as pd
from pyecharts.charts import Bar
import pyecharts.options as opts

# 清理數(shù)據(jù)并將'單價'列轉(zhuǎn)換為整數(shù)類型
df['單價'] = df['單價'].str.replace(',', '').astype(int)

# 計算平均價
avg_salary = df.groupby('區(qū)域')['單價'].mean()

# 獲取城市類型和城市平均價格
CityType = avg_salary.index.tolist()
CityNum = [int(a) for a in avg_salary.values.tolist()]

# 創(chuàng)建柱狀圖實(shí)例
c = (
    Bar()
    .add_xaxis(CityType)
    .add_yaxis("", CityNum)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各大區(qū)域房價單價平均價格"),
        visualmap_opts=opts.VisualMapOpts(
            dimension=1,
            pos_right="5%",
            max_=30,
            is_inverse=True,
        ),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45))  # 設(shè)置X軸標(biāo)簽旋轉(zhuǎn)角度為45度
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        ),
    )
)

# 在Notebook中顯示柱狀圖
c.render_notebook()

python爬取二手房,python,信息可視化,開發(fā)語言

【全網(wǎng)最全400個python實(shí)戰(zhàn)項(xiàng)目】2023最新版 暑期禁止擺爛!練完開啟Python兼職之旅~

400個實(shí)戰(zhàn)案例已經(jīng)為大家準(zhǔn)備好 確定不看看?
評論或者私信即可獲取~
文章來源地址http://www.zghlxwxcb.cn/news/detail-719034.html

到了這里,關(guān)于Python教你一招,爬取鏈家二手房并做數(shù)據(jù)可視化分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大數(shù)據(jù)畢業(yè)設(shè)計 二手房數(shù)據(jù)爬取與分析可視化系統(tǒng) -python

    大數(shù)據(jù)畢業(yè)設(shè)計 二手房數(shù)據(jù)爬取與分析可視化系統(tǒng) -python

    # 1 前言 ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項(xiàng)

    2024年02月16日
    瀏覽(31)
  • 教你一招,為Python屬性添加安全保護(hù)機(jī)制

    教你一招,為Python屬性添加安全保護(hù)機(jī)制

    ????????在Python中,屬性是類的重要組成部分之一。屬性可以用于存儲和獲取對象的狀態(tài)信息,但有時我們希望對屬性進(jìn)行安全保護(hù),避免誤操作或者不合法的訪問。本文將介紹如何使用Python為屬性添加安全保護(hù)機(jī)制。 1. 使用屬性裝飾器 ??????? ?Python提供了屬性裝飾

    2024年02月21日
    瀏覽(29)
  • python卸載方法(教你一招干干凈凈卸載Python

    python卸載方法(教你一招干干凈凈卸載Python

    是認(rèn)真的。我們在寫怎么從hello world開始你的python之旅,本篇是說卸載python安裝版,不是放棄python哦。 為什么要卸載 有的版本太舊。python3一改python2的舊習(xí),成了名副其實(shí)的“版本帝”。 原有的python版本,能在現(xiàn)有基礎(chǔ)上升級嗎? 本地計算機(jī)裝了python版本,配置了PATH環(huán)境。

    2024年01月17日
    瀏覽(26)
  • python畢設(shè)選題 - 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    python畢設(shè)選題 - 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    # 1 前言 ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項(xiàng)

    2024年01月20日
    瀏覽(29)
  • 計算機(jī)畢設(shè) 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    計算機(jī)畢設(shè) 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    # 1 前言 ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項(xiàng)

    2024年02月04日
    瀏覽(30)
  • 大數(shù)據(jù)畢設(shè)分享 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    大數(shù)據(jù)畢設(shè)分享 大數(shù)據(jù)二手房數(shù)據(jù)爬取與分析可視化 -python 數(shù)據(jù)分析 可視化

    # 1 前言 ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計項(xiàng)

    2024年01月23日
    瀏覽(34)
  • selenium+xpath爬取二手房標(biāo)題

    selenium+xpath爬取二手房標(biāo)題

    貝殼找房標(biāo)題爬取需要注意的是,在頁面中間有一個小廣告 而他就在ul的li下面,當(dāng)我們進(jìn)行title所以輸出時,會報錯。 所以在進(jìn)行頁面解析之前必須把廣告叉掉,不然也把廣告那一部分的li給爬取下來了 所以,我們,定位到上面箭頭那里,進(jìn)行?x掉,也就是利用click事件進(jìn)行

    2024年01月20日
    瀏覽(32)
  • 用Java爬取新房二手房數(shù)據(jù)看總體大環(huán)境

    用Java爬取新房二手房數(shù)據(jù)看總體大環(huán)境

    都說現(xiàn)在房市慘淡,導(dǎo)致很多人在觀望,那么今天我寫一段爬蟲,主要是抓取各地新房以及二手房成交狀況,然后了解總體樓市是否回暖上升。 以下是Java爬蟲程序的代碼示例,用于抓取貝殼網(wǎng)新房和二手房數(shù)據(jù): 解釋如下: 1、首先,我們導(dǎo)入了必要的庫,包括Jsoup用于解析

    2024年02月02日
    瀏覽(33)
  • 【小白慎入】還在手動擼瀏覽器?教你一招分分鐘自動化操作瀏覽器(Python進(jìn)階)

    【小白慎入】還在手動擼瀏覽器?教你一招分分鐘自動化操作瀏覽器(Python進(jìn)階)

    大家好啊,辣條哥又來猛貨了! 小白慎入! Puppeteer 是 Google 基于 Node.js 開發(fā)的一個工具,而 Pyppeteer 又是什么呢?它實(shí)際上是Puppeteer 的 Python 版本的實(shí)現(xiàn),但它不是Google 開發(fā)的,是一位來自于日本的工程師依據(jù)Puppeteer 的一些功能開發(fā)出來的非官方版本。 在 Pyppetter 中,實(shí)際

    2024年02月16日
    瀏覽(19)
  • 還在用Python爬蟲?教你一招,擺脫選擇元素位置的煩惱!使用Node.js大殺器,并且無需使用cheerio 庫~

    還在用Python爬蟲?教你一招,擺脫選擇元素位置的煩惱!使用Node.js大殺器,并且無需使用cheerio 庫~

    咱們以豆瓣歷史250最佳電影為例。 豆瓣說,_ 你不要過來?。?第一步:打開網(wǎng)頁源代碼 第二步:選擇你想要爬蟲的元素,右鍵復(fù)制獲取JS路徑 第三步:將這個路徑復(fù)制到代碼 咱們這個代碼很簡單,沒寫過node.js的同學(xué)也很容易看懂。引入包,再執(zhí)行一個http的get操作拿到整個

    2024年02月03日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包