小学妹刚毕业没地方住想来借宿?于是我连夜用Python给她找了个好房子,我真是太机智了

news2025/1/20 1:52:32

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章


事情是这样的,小学妹刚毕业参加工作,人生地不熟的,

因为就在我附近上班,所以想找我借宿。。。

想什么呢,都不给住宿费,想免费住?

于是我用Python连夜给她找了个单间,自己去住吧!

开发环境:

开发环境:

  • python 3.8 运行代码

  • pycharm 2022.3.2 辅助敲代码 专业版

第三方模块使用:

  • requests 发送请求 pip install requests

  • parsel 解析数据 pip install parsel

第三方模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

完整源码、教程 点击此处跳转文末名片获取 ,我都放在这里了。

代码展示

导入模块

import requests
import parsel
import csv

创建文件

f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '标题',
    '小区',
    '区域',
    '售价',
    '单价',
    '户型',
    '面积',
    '朝向',
    '装修',
    '楼层',
    '年份',
    '建筑类型',
    '详情页',
])
csv_writer.writeheader()

模拟浏览器

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}

请求网址/网站

url = 'https://cs.***.com/ershoufang/'

发送请求

response = requests.get(url=url, headers=headers)
print(response)

解析数据, 提取我们想要的数据内容

使用css: 根据标签属性提取数据内容

把获取到html字符串数据, 转成可解析对象

selector = parsel.Selector(response.text)

获取所有房源信息所在li标签

lis = selector.css('.sellListContent li.clear')

for循环遍历

提取具体房源信息: 标题 / 价格 / 位置 / 户型…

for li in lis:
    title = li.css('.title a::text').get()  # 标题
    info_list = li.css('.positionInfo a::text').getall()
    area = info_list[0]  # 小区名字
    area_1 = info_list[1]  # 地区
    totalPrice = li.css('.totalPrice span::text').get()  # 售价
    unitPrice = li.css('.unitPrice span::text').get().replace('元/平', '').replace(',', '')  # 单价
    houseInfo = li.css('.houseInfo::text').get().split(' | ')  # 信息
    houseType = houseInfo[0]  # 户型
    houseArea = houseInfo[1].replace('平米', '')  # 面积
    houseFace = houseInfo[2]  # 朝向
    fitment = houseInfo[3]  # 装修
    fool = houseInfo[4]  # 楼层

    if len(houseInfo) == 7 and '年' in houseInfo[5]:
        year = houseInfo[5].replace('年建', '')
    else:
        year = ''
    house = houseInfo[-1]  # 建筑类型
    href = li.css('.title a::attr(href)').get()  # 详情页
    dit = {
        '标题': title,
        '小区': area,
        '区域': area_1,
        '售价': totalPrice,
        '单价': unitPrice,
        '户型': houseType,
        '面积': houseArea,
        '朝向': houseFace,
        '装修': fitment,
        '楼层': fool,
        '年份': year,
        '建筑类型': house,
        '详情页': href,
    }
    csv_writer.writerow(dit)
    print(dit)
    # print(title, area, area_1, totalPrice, unitPrice, houseType, houseArea, houseFace, fitment, fool, year, house, href)

括展小知识:

  1. <Response [200]> 响应对象 200 状态码 表示请求成功

  2. 解析方法:

    re: 对于字符串数据直接进行解析提取

    css: 根据标签属性提取数据内容

    xpath: 根据标签节点提取数据内容

  3. .title a --> 表示定位class类名为title下面a标签

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL运维篇(二)

四.MyCat 4.1 MyCat概述 4.1.1 介绍 Mycat是开源的、活跃的、基于Java语言编写的数据库中间件。可以像使用mysql一样来使用 mycat&#xff0c;对于开发人员来说根本感觉不到mycat的存在。mycat不单只可以做MySQL的代理&#xff0c;其它常用的数据库也可以。 开发人员只需要…

基于springboot+Vue+ Element-Plus+mysql实现学生宿舍管理系统

基于springbootVue Element-Plusmysql实现学生宿舍管理系统 一、系统介绍二、功能展示1.登陆2、主页--学生3、主页--宿舍管理员4.学生管理--管理员5.宿管信息--管理员6.宿舍管理--管理员7.信息管理--管理员8.申请管理--管理员9.访客管理--管理员10.水电费管理--管理员11.卫生管…

AB Test数学原理及金融风控应用

1 什么是AB Test AB测试是一种常用的实验设计方法&#xff0c;用于比较两个或多个不同处理或策略的效果&#xff0c;以确定哪个处理或策略在某个指标上表现更好。在AB测试中&#xff0c;将随机选择一部分用户或样本&#xff0c;将其分为两个或多个组&#xff0c;每个组应用不同…

【Maven】单元测试、统计、覆盖率相关插件使用介绍

maven-surefire-plugin maven-surefire-plugin是maven执行单元测试的插件&#xff0c;不显性配置也可以直接使用。这个插件的surefire:test命令会默认绑定maven执行的test阶段。执行结束后&#xff0c;默认在target/surefire-reports目录下会生成txt和xml两种格式的结果&#…

接口测试-Mock测试方法

一、关于Mock测试 1、什么是Mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSet 对象&#…

2023年电工杯B题问题二三思路讲解+创新点

问题二三解题思路 1.根据你们对数据的分析结果选取评价指标&#xff0c;从优先级、科学性、可操作性等方面论述其合理性&#xff0c;并构建评价指标体系&#xff1b; 2.建立数学模型&#xff0c;评价人工智能对大学生学习的影响&#xff0c;给出明确、有说服力的结论&#xf…

【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计 【SQL Se…

yolov5环境配置

阅读readme 阅读github上的yolov5的readme的环境配置&#xff0c;举例来说&#xff0c;yolov5_5.0要求如下。 删除原有出错误的环境 conda remove -n env_name --all -y 创建虚拟环境并指定python版本 conda create -n env_name python3.9 安装pytorch 查看显卡驱动 nvid…

​Kali-linux攻击路由器​

前面介绍的各种工具&#xff0c;都是通过直接破解密码&#xff0c;来连接到无线网络。由于在一个无线网络环境的所有设备中&#xff0c;路由器是最重要的设备之一。通常用户为了保护路由器的安全&#xff0c;通常会设置一个比较复杂的密码。甚至一些用户可能会使用路由器的默认…

Fourier分析入门——第10章——直接数据分析

目录 第10章 直接数据分析 10.1 引言 10.2 均值的方向和集中度(Mean direction and concentration about the mean) 10.3 假设检验(Hypothesis testing) 10.4 分组数据(Grouped data)及其与Fourier的关联 10.4.1 分组数据 10.4.2 分组数据与Fourier的关联 10.5 高次谐波…

解决未加载的符号文件

在连接器》命令行里输入&#xff1a;/INCLUDE:?warp_sizecudaatYAHXZ

浅谈智能疏散照明系统在体育场馆中的应用分析

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;随着经济的发展和科技的进步&#xff0c;人们对电气智能化提出了更高的要求&#xff0c;使得电气智能化系统在智能建筑中的地位越来越重要。本文结合工程实例对体育场馆智能疏散照明系统的设计进行了…

Matlab:神经网络实现手写数字识别

如今人工智能发展的时代,机器学习有着不可或缺的地位,而其中最为突出的模型该属于神经网络。从提出神经网络开始,历经感知机、人工神经网络、BP神经网络、进化神经网络、卷积神经网络、图神经网络等,不断的深入到众多的研究领域中,比如利用神经网络训练参数、图像识别、文…

机试打卡 -12 滑动窗口最大值(优先队列堆)

我的思路1&#xff1a;队列&#xff0c;每次 出队入队&#xff0c;记录1个队列中的最大值索引&#xff0c;超时。。。 class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:nums_lenlen(nums)ans_list[]# 队列长度为kqueuenums[:k]# 队列最大…

基于GeoToolkit/INT实现二维等值线图绘制示例

继续在上一篇文章的基础上&#xff0c;利用相同的数据处理方法统一了地层数据和断层数据格式&#xff0c;本文主要基于GeoToolkit/INT组件&#xff0c;针对地质专业经常用到的地层数据解析和二维等值线&#xff08;等高或等深线&#xff09;可视化需求&#xff0c;本示例实现了…

Sqoop学习笔记

1 简介 Sqoop是Apache下的一款数据传输工具&#xff0c;用于Hadoop和关系型数据库等结构化数据存储之间的数据传输。 最新的稳定版本是1.4.7,Sqoop2 的最新版本是 1.99.7。请注意&#xff0c;1.99.7 与 1.4.7不兼容&#xff0c;且没有特征不完整&#xff0c;也并不打算用于生…

规则引擎入门-基于easy-rules

目录 概念理解实例和编码抽象出2条规则简单的规则引擎事实1的处理事实2的处理 easy-rules 规则的抽象和执行事实描述规则的抽象默认的规则 动态代理执行规则和动作规则的执行&#xff1a;org.jeasy.rules.core.DefaultRulesEngine#doFirepublic class RuleProxy implements Inv…

递归的基本概念

分类&#xff1a; 直接递归 间接递归 如果递归函数中调用递归的语句为最后一个执行语句&#xff0c;则称这种递归为尾递归 递归使用条件 原问题可以划为一个或多个子问题&#xff0c;且子问题的求解方式与原问题相同&#xff0c;只是数量规模不同 递归的调用次…

突破职场难题有效沟通、应对压力、提升能力,实现职场成功

在竞争激烈的职场中&#xff0c;我们经常面临各种职场挑战&#xff0c;例如如何有效沟通、应对工作压力以及提升职业能力等。下面分享一下在职场中的经验&#xff0c;帮助你提升职场技能&#xff0c;实现出色表现&#xff1a; 一、高效沟通&#xff1a; 倾听与理解&#xff1…

5.26~5.27

https://blog.csdn.net/m0_72827793/article/details/130478513 接着之前的内容 32bit.exe为何运行不了&#xff1f; 第一个问题当我运行32bbit.exe 那是因为我编译出的程序时64位的程序 64位程序和32位程序&#xff0c;在编译的时候&#xff0c;具有差异&#xff0c;在32位…