一、爬虫–scrapy

1.搭建环境

代码如下(示例):

import scrapy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

2.加载scrapy框架

代码如下(示例):

# terminal 终端实现
cd .. # 跳转到上一层目录
scrapy startproject booktop # 和项目同名的scrapy框架项目

3. setting配置

代码如下(示例):

ROBOTSTXT_OBEY = False # 君子协议 false 不遵守
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
DOWNLOAD_DELAY = 0.5 # 下载延迟

4.spider编写

代码如下(示例):

# spiders文件夹下创建python文件 ganspider.py
import scrapy
from demo6.items import HouseItem
class GanJiSpider(scrapy.Spider):
name="gan_spider"
allowed_domains=["xiangyang.ganji.com"]
start_urls=["http://xiangyang.ganji.com/zufang/"]
# 解析数据
def parse(self, response, **kwargs):
# print(response.text)

测试

代码如下(示例):

# 在terminal终端进行
cd gandemo # 进入项目文件夹
scrapy crawl gan_spider # 运行项目下的爬虫(和name的值保持一致)
# 测试成功,看到页面代码

5. 获取数据(户型+价格)

代码如下(示例):

# 需要导入HouseItem类 文件开头导入 from demo6.items import HouseItem
from demo6.items import HouseItem
class HouseSpider(scrapy.Spider):
name="house_spider"
allowed_domains=["xiangyang.ganji.com"]
start_urls=["http://xiangyang.ganji.com/zufang/"]
# 解析数据
def parse(self, response, **kwargs):
# 所有的房子
houses=response.css('dl.f-list-item-wrap.min-line-height.f-clear')
# 户型 价格
for house in houses:
size=house.css('dd.dd-item.size span:first-child::text').extract()
[0]
# print(size)
price=house.css('div.price span.num::text').extract()[0]
# print(price)
yield HouseItem(size=size,price=price)

需要使用item对象完成数据封装并传输

代码如下(示例):

# items.py书写房屋类
class HouseItem(scrapy.Item):
size=scrapy.Field()
price=scrapy.Field()
pass

6.pipeline 管道存储数据

代码如下(示例):

# 在setting文件下,解开注释
ITEM_PIPELINES = {
'booktop.pipelines.HousePipeline': 300,
}#数据存储到txt文件下
# 打开管道文件 BooktopPipeline
class HousePipeline:
def process_item(self, item, spider):
file=open('house.txt','a+',encoding='utf-8')
file.write( item['size']+','+item['price']+'\n')
return item
# 运行测试结果house.txt下有数据成功

二、分析和可视化

代码如下(示例):

# 在项目中创建 分析文件 demo.py
import pandas as pd
import matplotlib.pyplot as plt
# 数据源
data=pd.read_csv('house.txt',names=['size','price'])
print(data)
# 统计groupby不同户型的最高价max,最低价min,均价mean,
result=data.groupby('size').agg(['max','min','mean'])
print(result)
# 绘制不同户型均价折线图、柱状图
import matplotlib
# 中文可显示
font = {'family': 'microsoft yahei',
'weight': 'bold',
'size': 12}
matplotlib.rc('font', **font)
plt.title('不同户型房源示意图')
# 折线图 柱状图
plt.plot(result.index,result['price']['mean'],'r*--')
plt.bar(result.index,result['price']['mean'])
plt.show()本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!

爬虫爬取赶集网租房信息相关推荐

  1. Python2 Python3 爬取赶集网租房信息,带源码分析

    *之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是 ...

  2. Python爬虫之九:用正则表达式爬取赶集网租房信息

    一.项目分析 1.查询主页和详情页面的关系 得出数据关系:每一个 class 属性为 f-list-item ershoufang-list 的 div 包含着整个需要爬取数据的信息,且查询 ersh ...

  3. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  4. 利用python爬取贝壳网租房信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. python 爬虫 爬取当当网图书信息

    初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名.作者等 import requests from time import slee ...

  6. python 爬取自如网租房信息(解决照片价格问题)

    一.背景 爬取自如网的租房信息时,本来以为是手到擒来的事,结果却被租房价格卡死了.有脾气的自如,价格居然搞成了照片,并且照片是乱序的0到9,每次根据像素位截取. 最气人的,还是一张照片只取一个数字,例 ...

  7. python爬虫爬取58同城租房信息(使用动态IP)输出Excel文件

    python爬虫爬取58同城信息(使用动态IP) 新手,为了做一个数据分析,搞了几天,终于搞出来了,大家可以给点意见啊. # coding=utf-8 import sys import csv im ...

  8. python爬虫--爬取链家租房信息

    python 爬虫-链家租房信息 爬虫,其实就是爬取web页面上的信息. 链家租房信息页面如下: https://gz.lianjia.com/zufang/ ## python库 Python库 1 ...

  9. python爬虫-爬取当当网书籍信息存到Excel中

    文章目录 一.任务 二.分析 (一).单页面的信息分析 源代码分析 目标信息定位与分析 代码设计 (二).所有目标页面链接分析 目标链接分析 代码设计 三.注意要点 四.完整代码 五.参考 一.任务 ...

最新文章

  1. windows8.1与centos7.0双系统启动项设置
  2. amd860k能装黑苹果吗_黑苹果配置 篇六:黑苹果硬件选购指南之终篇--2019年8月
  3. c+还是python好-既然C+不如Java、Python,为什么还要学C+?
  4. mysql如何处理图片吗_如何解决mysql插入图片后缀名问题?
  5. JUC锁-CountDownLatch(六)
  6. sql查询语句for xml path语法
  7. liunx-mysql-password重置(初始化)
  8. 用Visual C++实现远程线程嵌入技术
  9. iOS开发日记46-倒计时效果的实现
  10. Flink 上传的Jar包去哪里了
  11. 278. First Bad Version
  12. 解决网页中Waiting (TTFB)数据加载过慢的问题
  13. 指尖下的js —— 多触式web前端开发之三:处理复杂手势
  14. 基于微信小程序的在线考试系统【毕业设计源码】
  15. 保温杯内壁有很多小泡泡
  16. 华为 eNSP启动设备AR1失败 错误代码40
  17. 百度分词ai php,百度分词技术
  18. hive日期函数,求日期差等,datediff,date_add,date_sub,add_months
  19. 《Centos的下载详细步骤》
  20. 网关、开放平台如何设计appKey,appSecret,accessToken的生成和校验机制

热门文章

  1. 蔡徐坤哈哈哈mybatis
  2. Silverlight中OneTime,OneWay,TwoWay及INotifyPropertyChanged 接口的理解
  3. 服务器端配置的ssl协议版本,客户端ssl协议
  4. 【java学习】从头再来一遍(附韩顺平_循序渐进学Java零基础【完整笔记】)
  5. java.lang.IllegalArgumentException: Mapping directory location[url ...]does not denote a directory
  6. 【公式推导】正规方程
  7. 【UE5】虚幻5 无法设置默认的游戏模式
  8. DIRECT3D基础知识 ---- 渲染与纹理 及位图,顶点缓存释义
  9. 程序人生(三):毕业第二年,涨薪100%
  10. 关于投篮的数学建模模型_数学建模——投篮命中率的数学模型