Python技术栈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8196|回复: 100

[数据可视化] 爬取房天下某城市新房数据并尝试简单的可视化(一)

  [复制链接]

10

主题

20

帖子

161

积分

超级版主

Rank: 8Rank: 8

积分
161
发表于 2019-3-26 10:33:04 | 显示全部楼层 |阅读模式
[Python] 纯文本查看 复制代码
import requests
import random
import time
from bs4 import BeautifulSoup
import csv

# 获取网页信息
def get_html(url):
    try:
        r = requests.get(url)
        r.encoding = r.apparent_encoding
        r.raise_for_status()
        return r.text
    except:
        return 'error'
    time.sleep(random.random())
    
# 分析网页信息并提取关键内容
def get_houseinfo(html,h_list):
    h_info = []
    soup = BeautifulSoup(html,'lxml')
    house_list = soup.find_all('div',{'class':'nhouse_list'})[0]
    for h in house_list.find_all('div',{'class':'nlc_details'}):
        try:
            house_name = h.find_all('a')[0].get_text().strip() # 楼盘名称
            coment_num = h.find_all('span',{'class':'value_num'})[0].get_text().strip() # 评论数
            try:
                house_price = h.find_all('div',{'class':'nhouse_price'})[0].span.get_text().strip()
            except:
                house_price = '售价待定'
            loc = h.find_all('div',{'class':'address'})[0].a.get_text().strip()
            h_info = [house_name,loc,house_price,coment_num]
            h_list.append(h_info)
        except IndexError:
            pass
        
# 打开csv文件 写入数据
def store_houseinfo(fpath,h_list):
    with open(fpath,'w',encoding='utf-8') as f:
        house_csv = csv.writer(f)
        house_csv.writerow(['名称','区域','价格','评论数'])
        for t in h_list:
            house_csv.writerow(t)
            
# 主程序
def main():
    h_list = []
    fpath = 'houseInfo.csv'
    for i in range(1,18):
        url = 'https://wf.newhouse.fang.com/house/s/b9%d/' % i
        print('正在爬取地址:' + url)
        html = get_html(url)
        get_houseinfo(html,h_list)
    store_houseinfo(fpath,h_list)
    
main()

Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-3-26 10:33:04 | 显示全部楼层
锄禾日当午,发帖真辛苦。谁知坛中餐,帖帖皆辛苦!
Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-3-26 12:42:14 | 显示全部楼层
我只是路过,不发表意见
Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-3-26 14:16:55 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
Python 总 群
回复

使用道具 举报

0

主题

8

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2019-3-26 15:04:54 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381
Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2019-3-26 15:30:49 | 显示全部楼层
我也来顶一下..
Python 总 群
回复

使用道具 举报

11

主题

14

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2019-3-26 16:11:02 | 显示全部楼层
啥玩应呀
Python 总 群
回复

使用道具 举报

0

主题

3

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2019-3-26 17:39:43 | 显示全部楼层
支持支持再支持
Python 总 群
回复

使用道具 举报

0

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2019-3-26 18:23:30 | 显示全部楼层
楼下的接上
Python 总 群
回复

使用道具 举报

0

主题

3

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2019-3-26 20:42:21 | 显示全部楼层
打酱油的人拉,回复下赚取积分
Python 总 群
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|Archiver|手机版|小黑屋|Python.BBS ( 鲁ICP备18046958号 )

GMT+8, 2020-1-29 11:36 , Processed in 0.180996 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表