从贝壳网获取房价信息。

基本的步骤和我的这篇博文一样: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获取房价信息的更多相关文章

  1. Python获取房价信息和导出EXCEL

    房价与生活息息相关,那么各地区房价情况和差别咋样呢?  可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~ 作为一个合格的程序员,要懂得用代码解决问题! 第一步:打开一个房产交易平台 ...

  2. python 获取对象信息

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...

  3. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  4. 用python获取服务器硬件信息[转]

    #!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...

  5. 用python获取ip信息

    1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...

  6. python获取对象信息

    获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...

  7. python获取机器信息脚本(网上寻找的)

    获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...

  8. python获取的信息列表微信公共平台和用户头像

    转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...

  9. 关于Python 获取windows信息收集

    收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...

  10. Python - 获取帮助信息

    1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...

随机推荐

  1. JS - JavaScript 主要知识点(基础夯实)

    纲要 基本类型和引用类型 类型判断 强制类型转换 作用域 执行上下文 理解函数的执行过程 this 指向 闭包 原型和原型链 js 的继承 event loop 基本类型和引用类型 js中数据类型分为 ...

  2. 07cj031,07CJ03-1图集免费下载

    简介 07CJ03-1轻钢龙骨石膏板隔墙.吊顶图集是中国建筑标准设计研究院组织编写的一部针对轻钢龙骨.石膏板材料用于非承重隔墙.室内吊顶装修的装修.建造参考资料,为用户提供专业的建造参考 下载 有需要 ...

  3. 牛客网-SQL专项训练19

    ①下列哪个语句是授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid.cname的查询权限(C) 解析: 授予权限的语法: GRANT <权限> ON 表名(列名) T ...

  4. 阿里云 EMAS Serverless 重磅发布

    简介: EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用.弹性伸缩的云开发服务,包含云函数.云数据库.云存储.静态网站托管等功能,可用 ...

  5. KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎

    美国西部时间 2020 年 11 月 18 日,在云原生技术"最高盛宴"的 KubeCon 北美峰会 2020 上,CNCF 应用交付领域小组(CNCF SIG App Deliv ...

  6. Ubuntu环境下docker每次都需要sudo的问题

    1.添加 docker 用户组 sudo groupadd docker 可以通过 cat /etc/group 指令查看存在的用户组 2.将当前用户添加到 docker 组中 sudo gpassw ...

  7. vue-苟曰的老板不发工资230行原创js代码写个扫雷小游戏

    上gif: 1.开局提示动画 2.游戏中状态提示 3.开挂模式提示 4.计时器 5.游戏模式扫雷成功,蓝色进度条表示当次扫雷的完成度 6.若当次时间小于最佳记录,则更新最佳记录,如果最佳记录小于设置的 ...

  8. 多个docker容器如何共享网络

    目录 多个docker容器如何共享网络 一.创建共享网络 二.docker-compose 启动容器共享网络 参考文档: 多个docker容器如何共享网络 一.创建共享网络 无论哪种方式,第一步都是创 ...

  9. 飞桨动态图PyLayer机制

    一.主要用法 如下是官方文档上的使用样例: import paddle from paddle.autograd import PyLayer # Inherit from PyLayer class ...

  10. mac升级node

    sudo npm cache clean -f //清除nodejs的cache sudo npm install -g n //使用npm安装n模块 npm view node versions / ...