爬虫练习:获取某网站的房价信息

一、相关网站

二、相关代码

import requests
from lxml import etree
import csv
with open('房天下数据.csv', 'w', newline='', encoding='utf-8') as csvfile:
    fieldnames = ['名称', '地点','价格','总价','联系电话']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for page in range(1,33):
        response = requests.get(f'https://newhouse.fang.com/house/s/b9{page}/')
        result = etree.HTML(response.text)
        names = [name.strip() for name in result.xpath('//div[@class="nlcd_name"]/a/text()')]
        addreses = result.xpath('//div[@class="address"]/a/@title')
        prices = [price.xpath('string(.)').strip() for price in result.xpath('//div[@class="nhouse_price"]')]
        total_prices = result.xpath('//p[@class="zj_price"]/text()')
        phone_texts = result.xpath('//div[@class="tel"]/p/text()')
        # 定义一个函数用于检查电话号码是否有效(这里仅作为示例,您可以根据实际需求定义有效性)
        def is_valid_phone_number(phone_number):
            # 这里可以根据实际情况编写验证规则
            # 例如,简单地检查长度大于0
            return bool(phone_number.strip())
        # 合并电话号码和分机号,并用'转'连接
        phones = ['{}转{}'.format(phone_texts[i].strip(), phone_texts[i+1].strip())
                           if is_valid_phone_number(phone_texts[i]) and is_valid_phone_number(phone_texts[i+1])
                           else "NAN"
                           for i in range(0, len(phone_texts)-1, 2)]
        # print(names,addreses,prices,total_prices,phones)
        for nam,add,pri,topr,pho in zip(names,addreses,prices,total_prices,phones):
            print(f'{nam} ====== {add} ====== {pri} ====== {topr} ===== {pho}')
            writer.writerow({'名称': nam, '地点': add,'价格':pri,'总价':topr,'联系电话':pho})

三、获取结果

版权声明和免责声明

本博客提供的所有爬虫代码和相关内容(以下简称“内容”)仅供参考和学习之用。任何使用或依赖这些内容的风险均由使用者自行承担。我(博客所有者)不对因使用这些内容而产生的任何直接或间接损失承担责任。

严禁将本博客提供的爬虫代码用于任何违法、不道德或侵犯第三方权益的活动。使用者应当遵守所有适用的法律法规,包括但不限于数据保护法、隐私权法和知识产权法。

如果您选择使用本博客的爬虫代码,您应当确保您的使用行为符合所有相关法律法规,并且不会损害任何人的合法权益。在任何情况下,我(博客所有者)均不对您的行为负责。

如果您对本声明有任何疑问,或者需要进一步的澄清,请通过我的联系方式与我联系。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL临时表创建出错(OS errno 13 - Permission denied)

一个客户向我抱怨:在MySQL查询小表没有问题,查询大表出错,下面是他发给我的出错的部分截屏(客户的表名被我隐藏了)。 这里的给出的信息已经比较明显了,是向/tmp目录中创建临时表失败(临时表的路…

在用Java写算法的时候如何加快读写速度

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点) 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的r…

B端系统:漂亮就行。扯淡,漂亮仅占五分之一!

Hi,我是贝格前端工场,接触N多B端系统,也优化升级过N多。在这个过程中,仅仅美观是不够的,所以我拓展出来的B端系统五度评价指标,本篇着重讲易用性指标,欢迎老铁们评论点赞转发,有需求…

安卓studio安装

安卓studio安装 2024.3.11官网的版本(有些翻墙步骤下载东西也解决了) 这次写的略有草率,后面会更新布局的,因为截图量太大了,有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

Node.Js编码注意事项

Node.js 中不能使用 BOM 和 DOM 的 API,可以使用 console 和定时器 APINode.js 中的顶级对象为 global,也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的&#xff…

【CLIP综述】CLIP在医学影像中的应用(二)

原文传递:CLIP in Medical Imaging: A Comprehensive Survey 其他综述篇:   【SAM综述】医学图像分割的分割一切模型:当前应用和未来方向   【CLIP综述】CLIP在医学影像中的应用(一) 4、基于CLIP的应用&#xff08…

OD_2024_C卷_200分_10、部门人力分配【JAVA】【二分法 + 双指针】

说明 输入数据两行,第一行输入数据3表示开发时间要求,第二行输入数据表示需求工作量大小,输出数据一行,表示部门人力需求。当选择人力为6时,2个需求量为3的工作可以在1个月里完成,其他2个工作各需要1个月完…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能…

Visual C++ 2005 可以生成清单信息了

在 Visual C 2005 中,我们可以通过 #pragma 指令来生成你想要的清单信息,这项功能可以简化新版本通用控件的使用。 例如,下面的代码可以指示链接器,将通用控件的新版本(6.0.0.0)链接到应用程序中。 // do not use – see discussi…

01 数据结构引入 和 顺序表

阅读引言: 从本文开始给大家带来我在复习过程中写的数据结构的代码, 分享给需要的同学 一、数据结构引入 1.数据结构解决什么问题 数据结构可以将杂乱无章的数据管理起来, 提高数据的访问效率 计算机处理的对象(数据&#xff09…

2022 年广西职业院校技能大赛高职组《云计算》赛项赛卷

#需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! 某企业拟使用 OpenStack 搭建一…

YOLOv8独家改进:backbone改进 | 最新大卷积核CNN架构UniRepLKNet,ImageNet 88% | CVPR2024

💡💡💡本文独家改进:大核卷积一统多种模态!RepLK正统续作UniRepLKNet,代替YOLOv8 Backbone 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适…

基于智慧灯杆的智慧城市解决方案(2)

功能规划 智慧照明功能 智慧路灯的基本功能仍然是道路照明, 因此对照明功能的智慧化提升是最基本的一项要求。 对道路照明管理进行智慧化提升, 实施智慧照明, 必然将成为智慧城市中道路照明发展的主要方向之一。 智慧照明是集计算机网络技术、 通信技术、 控制技术、 数据…

WordPress高端后台美化WP Adminify Pro优化版

后台UI美化WP Adminify Pro修改自定义插件,适合建站公司和个人使用,非常高大上,下载地址:WP Adminify Pro优化版 修复记录: 1、修复已知BUG 2、修复手机版兼容问题 3、修复打开速度,原版打开速度太慢 4…

华为数通方向HCIP-DataCom H12-821题库(多选题:121-140)

第121题 以下哪些事件会导致IS-IS产生一个新的LSP? A、引入的IP路由发送变化 B、周期性更新 C、接口开销发生了变化 D、邻接Up或Down 【参考答案】ABCD 【答案解析】 第122题 以下哪些协议既支持网络配置管理又支持网络监控管理? A、Telemetry B、NETCONF C、SNMP D、LLDP …

STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置

STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置前言第1章 设置字体颜色第2章 设置字体大小第3章 设置代码区背景颜色总结 前言 编程软件环境最好就设置一个自己喜欢的界面进行显示,这样看起来会比较舒服些…

重生奇迹MU觉醒弓箭手技能有哪些

1、普攻:向前方射出箭矢,造成一定的物理输出。 2、冰封箭:弓箭手射出一发冰冻的箭矢,造成一定的范围伤害。 3、精灵祝福:可以召唤一只守护精灵,为自己加血治疗。 4、多重箭:弓手射出扇形范围…

c++基础知识之父类地址和基类地址一定相同?

背景 hi,粉丝朋友们: 大家好!这两天在分析智能指针Refbase相关内容时候,debug打印相关记录一直有个颠覆我观念的问题一直让我无比纠结。 本质原因可能还是java代码的思维去理解c导致的。 情况如下: java代码 public …

基于PHP的餐厅管理系统APP设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 MVC 3 1.2 ThinkPHP 3 1.3 MySQL数据库 3 1.4 uni-app 4 1.5 本章小结 4 2 系统分析 5 2.1 功能需求 5 2.2 用例分析 7 2.3 非功能需求 8 2.4 本章小结 8 3 系统设计 9 3.1 系统总体设计 9 3.2 系统详细设计 10 3.3 本章小…

【初始MongoDB】MongoDB的使用(对比MySQL)

MongoDB简介 1、NoSQL简介 NoSQL(NoSQL Not Only SQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储…