从贝壳网获取房价信息。

基本的步骤和我的这篇博文一样: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. Node.js 中的事件循环机制

    一.是什么 在浏览器事件循环中,我们了解到javascript在浏览器中的事件循环机制,其是根据HTML5定义的规范来实现 而在NodeJS中,事件循环是基于libuv实现,libuv是一个多平台的专 ...

  2. 微信小程序,本地和真机测试都是好的,但体验版扫码显示空白页

    大概率是缓存导致的,删除掉你手机上的小程序[开发版] 和 [体验版],然后再扫码进入体验版就好了.

  3. vue3中动态添加路由刷新无法正确匹配路由组件

    1.问题 动态添加路由之后,页面重新匹配路由,匹配到了设置的404 notfound页面 该页面是在路径无法匹配到的时候才会跳转的页面 2. 问题查找 在前置路由守卫打印to 发现当前地址匹配到的组件 ...

  4. Borůvka MST算法

    当我认为最MST(最小生成树)已经没有什么学的了,才发现世界上还有个这个kruskal和prim结合的玩意 Borůvka 运用并查集的思想,先将每一个初始点集初始化为有且只有自己的点集,然后每一次合 ...

  5. 力扣442(java)-数组中重复的数据(中等)

    题目: 给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 .请你找出所有出现 两次 的整数,并以数组形式返回. 你必须设 ...

  6. 宜搭5月更新:跨应用数据读写能力升级,AI组件内测开放

    ​简介:表单.权限管理.AI组件等功能上新啦- 本次,我们带来了表单.权限管理.数据管理.平台管理权限.组件等功能的升级. 表单 支持跨应用数据查询 在使用组件数据联动.关联其他表单数据.关联表单组件 ...

  7. 阿里云全站加速DCDN重磅升级

    ​简介:相比传统CDN加速,全站加速DCDN具有更广阔的应用场景.在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制.从内容分发到安全防 ...

  8. dotnet core 不自动从 https 到 http 的 302 重定向

    本文记录一个已知问题,或者准确来说是设计如此的行为,在 dotnet core 下,无论是 dotnet core 3.1 还是 dotnet 5 或 dotnet 6 或 dotnet 7 等,如果 ...

  9. WPF 加载诡异的字体无法布局

    如果在系统里面存在诡异的字体,同时自己的 WPF 中有一个控件尝试使用这个字体放在界面中,那么将会在界面布局过程炸了,整个控件或者整个界面布局都无法继续 本文本来是由吕水大大发布的,但是他没空写,于是 ...

  10. dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

    在前面几篇博客告诉大家如何部署 GTK 应用,此时的应用是特别弱的,大概只是到拖控件级.尽管和 WinForms 一样也能写出特别强大的应用,但是为了提升一点开发效率,咱开始使用 xaml 神器写界面 ...