使用python获取房价信息
从贝壳网获取房价信息。
基本的步骤和我的这篇博文一样:https://www.cnblogs.com/mrlayfolk/p/12319414.html。不熟悉的可参考一下。
下面的代码是获取3000个样本的代码。
1 # encoding:utf-8
2
3 '''
4 目的:从贝壳找房中爬取房价信息。网址:https://cd.ke.com/ershoufang/qingyang/l2/
5 环境:python 3.7.3
6 所需的库:requests、BeautifulSoup、xlwt
7 '''
8
9 import logging
10 import xlwt
11 import requests
12 import string
13 from bs4 import BeautifulSoup
14
15 headers = {
16 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',\
17 "Host": "cd.ke.com",
18 }
19
20 # 将获取的信息保存到表格中
21 def save_info(content):
22 workbook = xlwt.Workbook(encoding = 'ascii')
23 worksheet = workbook.add_sheet('house info')
24 style = xlwt.XFStyle() # 初始化样式
25 font = xlwt.Font() # 为样式创建字体
26 font.name = 'Times New Roman'
27 font.bold = True # 黑体
28 font.underline = True # 下划线
29 font.italic = True # 斜体字
30 style.font = font # 设定样式
31 worksheet.write(0, 0, '名称')
32 worksheet.write(0, 1, '位置')
33 worksheet.write(0, 2, '房屋信息')
34 worksheet.write(0, 3, '总价(万)')
35 worksheet.write(0, 4, '单价(元/平方米)')
36
37 for i, item in enumerate(content):
38 for j in range(5): #多添加一列(序号)
39 worksheet.write(i+1, j, content[i][j])
40 workbook.save('./house_info.xls') # 保存文件
41
42
43 # 获取房屋相关的信息
44 # 主要包括:title positon houseinfo totalprice unitprice
45 def get_info():
46 all_info = []
47 title_list = []
48 position_list = []
49 house_list = []
50 totalPrice_list = []
51 unitPrice_list = []
52
53 for i in range(100):
54 link = 'https://cd.ke.com/ershoufang/qingyang/pg%dl2/' % i
55 r = requests.get(link, headers=headers, timeout=10)
56 print (str(i+1), 'status_code: ', r.status_code)
57 soup = BeautifulSoup(r.text, 'lxml')
58 titleInfo = soup.findAll('div', {'class': 'info clear'})
59 positionInfo = soup.findAll('div', {'class': 'positionInfo'})
60 houseInfo = soup.findAll('div', {'class': 'houseInfo'})
61 totalPrice = soup.findAll('div', {'class': 'totalPrice'})
62 unitPrice = soup.findAll('div', {'class': 'unitPrice'})
63 for item in titleInfo:
64 title = item.div.a.text.strip()
65 title_list.append(title)
66 for item in positionInfo:
67 postion = item.a.text.strip()
68 position_list.append(postion)
69 for item in houseInfo:
70 house = item.text.strip().replace('\n', ' ').replace(' ', '')
71 house_list.append(house)
72 for item in totalPrice:
73 total_price = item.span.text.strip()
74 totalPrice_list.append(total_price)
75 for item in unitPrice:
76 unit_price = item.span.text.strip().replace('单价', '').replace('元/平米', '')
77 unitPrice_list.append(unit_price)
78 print (len(title_list))
79 print (len(position_list))
80 print (len(house_list))
81 print (len(totalPrice_list))
82 print (len(unitPrice_list))
83 for i in range(len(title_list)):
84 item = [title_list[i], position_list[i], house_list[i], totalPrice_list[i], unitPrice_list[i]]
85 all_info.append(item)
86
87 return all_info
88
89
90 if __name__ == "__main__":
91 all_info = get_info()
92 save_info(all_info)
使用python获取房价信息的更多相关文章
- Python获取房价信息和导出EXCEL
房价与生活息息相关,那么各地区房价情况和差别咋样呢? 可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~ 作为一个合格的程序员,要懂得用代码解决问题! 第一步:打开一个房产交易平台 ...
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- Python 获取车票信息
提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...
- 用python获取服务器硬件信息[转]
#!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...
- 用python获取ip信息
1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...
- python获取对象信息
获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...
- python获取机器信息脚本(网上寻找的)
获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...
- python获取的信息列表微信公共平台和用户头像
转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...
- 关于Python 获取windows信息收集
收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...
- Python - 获取帮助信息
1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...
随机推荐
- 深度解读《深度探索C++对象模型》之拷贝构造函数
接下来我将持续更新"深度解读<深度探索C++对象模型>"系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文. 写作不易,请有心人到我的公众号上 ...
- 力扣171(java)-Excel表列序号(简单)
题目: 给你一个字符串 columnTitle ,表示 Excel 表格中的列名称.返回 该列名称对应的列序号 . 例如: A -> 1B -> 2C -> 3...Z -> ...
- MaxCompute项目子账号做超级管理员
场景 主账号不是大数据团队管理,使用MaxCompute员工都只持有子账号,而project的owner只能为主账号,但是很多MaxCompute的权限管理还需要owner才可以操作(如项目级别的fl ...
- 技术解读 | 智能开放搜索CTR预估模型
简介:本文介绍开放搜索CTR预估模型在个性化排序中的应用与实践 如何评价搜索排序效果? 搜索是用户触达信息最简单直接的方式,是APP.网页必备的功能.如何评价并提升搜索效果一直是搜索领域的常见问题. ...
- 系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术
简介:本篇以 first contact (通信两端建立首个连接) 场景为例,介绍 SMC-R 通信流程. 文/龙蜥社区高性能网络SIG 一.引言 通过上一篇文章 <系列解读SMC-R:透 ...
- Yurt-Tunnel 详解|如何解决 K8s 在云边协同下的运维监控挑战
简介: 伴随着 5G.IoT 等技术的快速发展,边缘计算被越来越广泛地应用于电信.媒体.运输.物流.农业.零售等行业和场景中,成为解决这些领域数据传输效率的关键方式.与此同时,边缘计算形态.规模.复杂 ...
- Flink + Iceberg + 对象存储,构建数据湖方案
简介: 上海站 Flink Meetup 分享内容,如何基于Flink.对象存储.Iceberg 来构建数据湖生态. 本文整理自 Dell 科技集团高级软件研发经理孙伟在 4 月 17 日 上海站 ...
- 多任务多目标CTR预估技术
简介: 多目标(Multi Objective Learning)是MTL中的一种.在业务场景中,经常面临既要又要的多目标问题.而多个目标常常会有冲突.如何使多个目标同时得到提升,是多任务多目标在真 ...
- [FE] Chrome Extension 五步曲
1. Create the manifest.jsonOnly three fields is needed. { "name": "Getting Started Ex ...
- DE10-Lite加速度计使用教程
DE10-Lite加速度计使用教程 1. 概述 DE10-Lite实验板上有一片5轴加速度计芯片ADXL345(通常称为G-sensor).它可以用来测量板子的倾斜角度.本文讲述如何以50次/秒的速度 ...