从贝壳网获取房价信息。

基本的步骤和我的这篇博文一样: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. git fork 项目的更新

    fork:github网站的操作,将开源项目复制一份到自己的仓库中 那fork的项目在原仓库更新后,如何同步呢? 1.查看远程仓库 $ git remote -v origin https://cod ...

  2. 力扣220(java)-存在重复元素 III(困难)

    题目: 给你一个整数数组 nums 和两个整数 k 和 t .请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i ...

  3. 力扣166(java)-分数到小数(中等)

    题目: 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 . 如果小数部分为循环小数,则将循环的部分括在括号内. 如果存在多个答案,只需返回 ...

  4. RocketMQ 消息集成:多类型业务消息——定时消息

    简介: 本篇将继续业务消息集成的场景,从使用场景.应用案例.功能原理以及最佳实践等角度介绍 RocketMQ 的定时消息功能. 作者:凯易.明锻   引言   Apache RocketMQ 诞生至今 ...

  5. WPF 通过 RawInput 获取触摸消息

    触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息.而触摸则没有直接的 Hook 的方法.如果期望自己的应用,可以在没有 ...

  6. C语言程序设计-笔记7-指针

    C语言程序设计-笔记7-指针 例8-1  利用指针模拟密码开锁游戏. #include<stdio.h> int main(void) { int x=5342;          //变 ...

  7. vue的三种组件传值方式

    一.父传子 1.在父组件引入的子组件标签内给需要传递的值自定义名称 <AlertSzs  :abc='gameType'></AlertSzs> 2.在子组件内用props接收 ...

  8. 特工17Agent17汉化版游戏破解金币方法修改破解金币的增加方法

    又是一个renpy游戏,昨晚搞了半个小时搞定的,其实这个游戏要赚钱也不难,就是点点点就可以了,但是我觉得还是挺费劲的,因为好多道具都很贵,攒钱又不怎么容易,花钱的地方还挺多的,所以干脆不如直接破解了算 ...

  9. RocketMQ 事件驱动:云时代的事件驱动有啥不同?

    前言: 从初代开源消息队列崛起,到 PC 互联网.移动互联网爆发式发展,再到如今 IoT.云计算.云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头. 目前,消息中间件在国内许多行业 ...

  10. Typora+免费图床,构建随处可用的Markdown文档

    Typora+PicGo+Gitee自动上传图片 视频教程: https://www.bilibili.com/video/BV1hT4y1f7Mf?from=search&seid=1546 ...