爬取房价信息并制作成柱状图

Posted smart-zihan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取房价信息并制作成柱状图相关的知识,希望对你有一定的参考价值。

以长沙楼盘为例,看一下它的房价情况如何url = https://cs.newhouse.fang.com/house/s/b91/

 

一、页面

技术图片

 

二、分析页面源代码

我们要获得的数据就是名字和价格,先来分析一下源代码,鼠标右键Inspect,并且打开xpath,第一步,找到需要提取数据的区域,选中定位到代码相应位置,然后右击copy xpath到xpath里面去,可以发现插件中右侧results有一个,就是下面那片黄色的区域,即我们要提取的数据。

技术图片

 

好了,网页部分已经了解了,那么接下来就是用代码抓取数据了。

 

三、代码实现

成果图:

技术图片

play.py

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
"""=================================================
@Project -> File    : Operate_system_ModeView_structure -> play.py
@IDE     : PyCharm
@Author  : zihan
@Date    : 2020/5/6 14:59
@Desc    :
================================================="""
import requests
from lxml import etree
from pyecharts.charts import Bar
import pyecharts.options as opts


def getData():
    url = "https://cs.newhouse.fang.com/house/s/b91/"
    headers = {
        User-Agent: ""
    }
    response = requests.get(url, headers=headers)  # 发送请求
    data= response.content.decode(encoding=gbk)
    html = etree.HTML(data)

    house_list = html.xpath(//div[@class="nl_con clearfix"]/ul/li)

    names = []
    prices = []
    for i in house_list:
        name = i.xpath(.//div[@class="nlcd_name"]/a/text())
        price = i.xpath(.//div[@class="nhouse_price"]/span/text())

        if name != [] and price != []:
            if price != [价格待定]:
                name = name[0].strip()
                names.append(name)
                price = price[0]
                prices.append(price)
    return names, prices


def main():
    print("main() func is starting...")
    names, prices = getData()
    # print(names)
    # print(prices)
    bar = Bar()
    bar.add_xaxis(names)
    bar.add_yaxis(长沙房价图, prices)
    bar.set_global_opts(
            xaxis_opts=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(rotate=40),
            ),
        yaxis_opts=opts.AxisOpts(name="价格(元、平方米)"),
        title_opts=opts.TitleOpts(title="柱状图")
    )
    bar.render(房价图.html)


if __name__ == __main__:
    main()

 

好了。

 

以上是关于爬取房价信息并制作成柱状图的主要内容,如果未能解决你的问题,请参考以下文章

python爬取豆瓣电影图片并生成评分柱状图

Python的scrapy之爬取链家网房价信息并保存到本地

Python爬虫实战,openpyxl模块学习,爬取房价信息并简单的数据分析

利用Python爬取房价信息(附代码)

如何使用MATLAB爬取北京市房价经纬度等信息

如何使用MATLAB爬取北京市房价经纬度等信息