爬虫 58同城房价信息 高德的接口进行房价地图绘制

爬虫部分

// An highlighted block
def main():
    base_url1 = 'https://hz.58.com/xinfang/loupan/all/p'
    base_url2 = '/?PGTID=0d0091a8-0004-f055-d9b7-c447c3e1c187&ClickID=1'
    date_list = []
    for i in range(1,34):
        html = ask_url(base_url1+str(i)+base_url2)
        bs = BeautifulSoup(html, 'html.parser')
        list = bs.find_all(class_='item-mod')
        for item in list[2:]:  # 前两个item-mod 存储的不是具体房产信息
            bs_mod = BeautifulSoup(str(item), 'html.parser')
            it1 = bs_mod.find_all(class_='items-name')[0]
            try:
                it2 = bs_mod.find_all(class_='price')[0]
            except:
                it2 = bs_mod.find_all(class_='price-txt')[0]
            date_list.append([it1.get_text(), it2.get_text(), transfrom(it1.get_text())])
        print('第%d页完成' %i)
        print('一共%d条' %len(date_list))
    save_Date(date_list,'杭州新房价格坐标.xls')

因为这里爬取的是新楼的房价,很多的地方都是在建中,很多都还没有定价,所以部分价格在源代码中的标签使用的是’price-txt’而不是’price’。

代用高德api接口实现地址的获取

def transfrom(addr):
    parameters = { 'keywords' : addr,'key' : '**********************'}
    base = 	'https://restapi.amap.com/v3/place/text?parameters'
    try:
        response = requests.get(base , parameters , timeout = 2)
        res = json.loads(response.text)
        return res['pois'][0]['location']
    except:
        return '地址获取失败'

这里需要去高德的开放平台进行获取你的key简单的进行注册你的账号。这里在完成的时候,对于返回值的处理我搞了很久没搞好,后来才发现他的网页中本身可以进行返回值的查看,我使用的是对关键字搜索。
在这里插入图片描述
最后进行数据的上传就可以获得最终的成果图。
在这里插入图片描述
这个是以价格为参考圆圈越大价格越高,本来是想用颜色进行标识,但是效果实在太理想,系统默认的将大部分价格划分的颜色过分接近,没有办法让人直观的进行一眼辨识,最终选择大小来呈现价格的不同。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值