用Python爬取2020链家杭州二手房数据

起源于数据挖掘课程设计的需求,参考着17年这位老兄写的代码:https://blog.csdn.net/sinat_36772813/article/details/73497956?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242
在此感谢

1.导入库及准备工作

主要用到了三个库,分别用于获取、解析、和操作excel

#_*_coding:utf-8_*_
 
# 导入开发模块
import requests
# 用于解析html数据的框架
from bs4 import BeautifulSoup
# 用于操作excel的框架
import xlwt
# 创建一个工作
book = xlwt.Workbook()
# 向表格中增加一个sheet表,sheet1为表格名称 允许单元格覆盖
sheet = book.add_sheet('sheet1', cell_overwrite_ok=True)

2.分析爬取方法

然后我们需要分析一下网页,看看要爬取什么数据以及如何爬取。
链家杭州二手房网址为:https://hz.lianjia.com/ershoufang/
可以发现,链家把杭州分为15个区域。

在这里插入图片描述

其中,截止到2020年09月19日,大江东和建德区域数据为0条,桐庐数据为3条,淳安数据共36条。和其他区域相比,这几个区域数据量太少,因此可以在后续爬取过程中略去。
然后往下拉,我们需要的大致就是爬取每个区每套房红色框内的数据了。

在这里插入图片描述

按F12打开开发者工具,可以看到:

在这里插入图片描述

每套房的数据包在一个 li 标签中,所有的 li 标签包在一个 ul 标签中,因此可以先获取到ul标签,再获取所有的li标签,用循环加改变url的方式,获取每个区每一页的数据。li 标签内的数据就一个一个慢慢取出来存储就好,详细看代码就不说了。

分析可知‘url+区名(如xihu)+页码(如pg2)’即可构成整体url
在这里插入图片描述

3.数据爬取过程

3.1定义第一个方法,在最初的url后面加上区域,并获取总页码数。

# 指定爬虫所需的杭州各个区域名称
citys = ['xihu','qiantangxinqu','xiacheng','jianggan','gongshu','shangcheng','binjiang','yuhang',
         'xiaoshan','fuyang','linan']
def getHtml(city):
    url = 'https://hz.lianjia.com/ershoufang/%s/' % city
    headers = {
   
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
    }
    request = requests
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值