爬虫爬取赶集网租房信息
一、爬虫–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
大家一起来学习讨论吧!
爬虫爬取赶集网租房信息相关推荐
- Python2 Python3 爬取赶集网租房信息,带源码分析
*之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是 ...
- Python爬虫之九:用正则表达式爬取赶集网租房信息
一.项目分析 1.查询主页和详情页面的关系 得出数据关系:每一个 class 属性为 f-list-item ershoufang-list 的 div 包含着整个需要爬取数据的信息,且查询 ersh ...
- Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息
XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...
- 利用python爬取贝壳网租房信息
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- python 爬虫 爬取当当网图书信息
初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名.作者等 import requests from time import slee ...
- python 爬取自如网租房信息(解决照片价格问题)
一.背景 爬取自如网的租房信息时,本来以为是手到擒来的事,结果却被租房价格卡死了.有脾气的自如,价格居然搞成了照片,并且照片是乱序的0到9,每次根据像素位截取. 最气人的,还是一张照片只取一个数字,例 ...
- python爬虫爬取58同城租房信息(使用动态IP)输出Excel文件
python爬虫爬取58同城信息(使用动态IP) 新手,为了做一个数据分析,搞了几天,终于搞出来了,大家可以给点意见啊. # coding=utf-8 import sys import csv im ...
- python爬虫--爬取链家租房信息
python 爬虫-链家租房信息 爬虫,其实就是爬取web页面上的信息. 链家租房信息页面如下: https://gz.lianjia.com/zufang/ ## python库 Python库 1 ...
- python爬虫-爬取当当网书籍信息存到Excel中
文章目录 一.任务 二.分析 (一).单页面的信息分析 源代码分析 目标信息定位与分析 代码设计 (二).所有目标页面链接分析 目标链接分析 代码设计 三.注意要点 四.完整代码 五.参考 一.任务 ...
最新文章
- windows8.1与centos7.0双系统启动项设置
- amd860k能装黑苹果吗_黑苹果配置 篇六:黑苹果硬件选购指南之终篇--2019年8月
- c+还是python好-既然C+不如Java、Python,为什么还要学C+?
- mysql如何处理图片吗_如何解决mysql插入图片后缀名问题?
- JUC锁-CountDownLatch(六)
- sql查询语句for xml path语法
- liunx-mysql-password重置(初始化)
- 用Visual C++实现远程线程嵌入技术
- iOS开发日记46-倒计时效果的实现
- Flink 上传的Jar包去哪里了
- 278. First Bad Version
- 解决网页中Waiting (TTFB)数据加载过慢的问题
- 指尖下的js —— 多触式web前端开发之三:处理复杂手势
- 基于微信小程序的在线考试系统【毕业设计源码】
- 保温杯内壁有很多小泡泡
- 华为 eNSP启动设备AR1失败 错误代码40
- 百度分词ai php,百度分词技术
- hive日期函数,求日期差等,datediff,date_add,date_sub,add_months
- 《Centos的下载详细步骤》
- 网关、开放平台如何设计appKey,appSecret,accessToken的生成和校验机制
热门文章
- 蔡徐坤哈哈哈mybatis
- Silverlight中OneTime,OneWay,TwoWay及INotifyPropertyChanged 接口的理解
- 服务器端配置的ssl协议版本,客户端ssl协议
- 【java学习】从头再来一遍(附韩顺平_循序渐进学Java零基础【完整笔记】)
- java.lang.IllegalArgumentException: Mapping directory location[url ...]does not denote a directory
- 【公式推导】正规方程
- 【UE5】虚幻5 无法设置默认的游戏模式
- DIRECT3D基础知识 ---- 渲染与纹理 及位图,顶点缓存释义
- 程序人生(三):毕业第二年,涨薪100%
- 关于投篮的数学建模模型_数学建模——投篮命中率的数学模型