爬虫案例——爬取长沙房产网租房信息

news2024/10/8 10:38:06

需求:

1.爬取长沙房产网租房信息(长沙租房信息_长沙出租房源|房屋出租价格【长沙贝壳租房】

包括租房标题、标题链接,价格和地址

2.实现翻页爬取

3.使用bs4解析数据

分析

1.抓取正确的数据包——看响应内容

找到正确的后,复制请求地址

 翻页参数和refere参数

refere参数:代表页面的来源

headers = {
    'Referer':'https://cs.lianjia.com/zufang/pg1/',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
}

pg3翻页参数

for i in range(1,6):
    print('==========','当前是第{}页'.format(i))
    url = 'https://cs.lianjia.com/zufang/pg{}/#contentList'.format(i)

获取解析栏

def parse_data(data):
    s = BeautifulSoup(data,'lxml')
    title = s.find_all('a',{"class":"twoline"})#标题
    price = s.find_all('span',{'class':'content__list--item-price'})#价格
    content = s.find_all('p',{'class':'content__list--item--des'})#地址

处理获取到的地址、价格和租房标题

for titles ,prices,contents in zip(title,price,content):
    # print(titles)https://cs.lianjia.com/zufang/CS1777573960666316800.html
    name = titles.get_text().strip()#get_text()获取文字信息 strip()去除空格
    link = 'https://cs.lianjia.com/'+titles['href']
    p = prices.get_text()
    c = contents.get_text()
    cs = re.sub('/|\n','',c).replace('   ','')

示例代码:

import requests
from bs4 import BeautifulSoup
import re

##Google Proxy SwitchyOmega安装:https://www.cnblogs.com/shyzh/p/11684159.html
url = "https://cs.lianjia.com/zufang/"
headers = {
    'Referer':'https://cs.lianjia.com/zufang/pg1/',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
}
def get_data():
    r = requests.get(url,headers=headers)
    return r.text
def parse_data(data):
    s = BeautifulSoup(data,'lxml')
    title = s.find_all('a',{"class":"twoline"})#标题
    price = s.find_all('span',{'class':'content__list--item-price'})#价格
    content = s.find_all('p',{'class':'content__list--item--des'})#地址
    # print(title)
    for titles ,prices,contents in zip(title,price,content):
        # print(titles)https://cs.lianjia.com/zufang/CS1777573960666316800.html
        name = titles.get_text().strip()#get_text()获取文字信息 strip()去除空格
        link = 'https://cs.lianjia.com/'+titles['href']
        p = prices.get_text()
        c = contents.get_text()
        cs = re.sub('/|\n','',c).replace('   ','')
        print(name)
        print(link)
        # print(prices)
        print(p)
        print(cs)
        print('=============================')

if __name__ == '__main__':
    #https://cs.lianjia.com/zufang/pg3/#contentList
    for i in range(1,6):
        print('==========','当前是第{}页'.format(i))
        url = 'https://cs.lianjia.com/zufang/pg{}/#contentList'.format(i)
        h = get_data()
        # print(h)
        parse_data(h)

运行结果:

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

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

相关文章

大模型之RAG-关键字检索的认识与实战(混合检索进阶储备)

前言 按照我们之前的分享(大模型应用RAG系列3-1从0搭建一个RAG:做好文档切分): RAG系统搭建的基本流程 准备对应的垂域资料文档的读取解析,进行文档切分将分割好的文本灌入检索引擎(向量数据库&#xff…

如何使用ssm实现新冠病毒校园监控平台的设计与实现+vue

TOC ssm812新冠病毒校园监控平台的设计与实现vue 绪论 课题背景 身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化。目前,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得…

python画图|曲线动态输出基础教程

在前述学习过程中,已经掌握基本的曲线图像画法,并尝试探索过3D动画基础教程。 相关文章可以通过下述链接直达: python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 python动画教程|Animations using Matplotlib-官网教程程…

Hallo部署指南

一、介绍 Hallo是由复旦大学、百度公司、苏黎世联邦理工学院和南京大学的研究人员共同提出的一个AI对口型肖像图像动画技术,可基于语音音频输入来驱动生成逼真且动态的肖像图像视频。 该框架采用了基于扩散的生成模型和分层音频驱动视觉合成模块,提高了…

Linux实践|设置静态 IP 地址

引言 如果您是 Linux 系统管理员,那么您将需要在系统上配置网络。与可以使用动态 IP 地址的台式机不同,在服务器基础设施上,您需要设置静态 IP 地址(至少在大多数情况下)。 本文[1]旨在向您展示如何在最常用的 Linux 发…

TBD62783AFG的强大性能:高性能应用的可靠解决方案

在当今竞争激烈的电子市场中,工程师们始终在寻找能够提供可靠性、效率和多功能性的组件,尤其是在处理复杂、高性能系统时。东芝的TBD62783AFG 8通道源型DMOS晶体管阵列就是这样一个元件。凭借其独特的功能组合,使其成为从小型电机到感性设备的…

SpringCloud学习记录|day3

学习材料 2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等) 微服务 1.单体架构 2.JMeter 这其实在redis还是什么教程里面用过,不过忘记得差不多了。 复习…

【重学 MySQL】六十、空间类型

【重学 MySQL】六十、空间类型 空间数据类型的分类空间数据类型的属性空间数据的表示方式空间数据的操作应用场景 在MySQL中,空间类型(Spatial Types)主要用于支持地理特征的生成、存储和分析。这些地理特征可以表示世界上具有位置的任何东西…

全是细节|大模型SFT的100个关键点

这篇文章介绍一下大模型的 sft 如何去做。我会默认读者们都知道 sft 是做什么的以及如何去做一些简单的 sft 微调工作,我主要是分享一些经验技巧和 debug 的分析思路。 背景篇 这里先普及一些 sft 涉及到的基础概念,方便新人同学理解后续内容&#xff0…

从0开始linux(6)——gcc

欢迎来到博主的专栏:从0开始linux 博主ID:代码小豪、 文章目录 gccgcc的文件风格预处理编译汇编链接 gcc gcc是linux系统下常用的C语言编译器,随着后续的扩展,gcc支持了c,并推出了g编译器,现在的gcc可以支…

C++(异常)

目录 C语言传统的处理错误的方式 传统的错误处理机制 C异常概念 异常的使用 异常的抛出和捕获 异常的抛出和匹配原则 在函数调用链中异常栈展开匹配原则 异常的重新抛出 异常安全 异常规范 自定义异常体系 C标准库的异常体系 异常的优缺点 C异常的优点 C异常的缺…

基于Python的美术馆预约系统【附源码】

效果如下: 系统首页界面 系统注册页面 美术馆详细页面 公告信息详细页面 后台登录界面 管理员主界面 美术馆管理界面 预约参观管理界面 研究背景 随着文化娱乐活动的日益丰富,美术馆作为展示艺术作品、传播文化的重要场所,其管理和服务模式…

大语言模型入门(四)——检索增强生成(RAG)

一、什么是检索增强生成 检索增强生成(Retrieval-Augmented Generation,RAG)由Facebook AI Research(FAIR)团队于2020年首次提出,这是一种结合了信息检索技术与语言生成模型的人工智能技术。它通过从外部知…

局域网内探测在线好友是如何做到的?

一、前言 随着局域网(LAN)应用的广泛使用,网络通信已经成为软件设计中不可或缺的一部分。局域网聊天软件作为一种常见的网络应用,可以实现多个用户之间的实时通信,广泛应用于企业内部沟通和小型网络环境中。本项目设计…

‌视频尺寸修改与批量剪辑技巧

在当今这个数字化时代,视频内容已成为人们获取信息、娱乐和社交的重要方式。然而,面对海量的视频素材,如何高效地管理和编辑它们成为了一个挑战。 1打开视频剪辑高手软件,切换功能到“批量剪辑视频” 2把需要剪辑的视频导入到表格…

希尔排序和直接插入排序

因为排序这些比较复杂点我就分几期给大家来讲~~~ 直接插入排序 直接插入排序是一种简单的排序算法,主要用于对少量数据进行排序。其基本思想是将待排序的元素逐个插入到已经排好序的部分中,从而形成一个有序序列。 具体步骤如下: 初始化&…

基于32单片机的博物馆安全监控系统设计

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 检测 分别是温湿度 光照 PM2.5、烟雾、红外,然后用OLED屏幕显示, 红外超过阈值则蜂鸣器报警,这是防盗报警;温度或烟雾超过阈值,则蜂鸣器…

【目标检测】木制地板缺陷破损数据集338张6类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3383 标注数量(xml文件个数):3383 标注数量(txt文件个数):3383 标注…

fiddler抓包21_(性能测试)耗时分析

课程大纲 使用场景 1. 查看请求耗时。 2. (更多)前端性能分析、优化。 1. 查看单个请求耗时 耗时详情:选择请求 - 右侧标签菜单选择Statistics“请求统计”。 传输时间线:选择请求 - 右侧选择“TimeLine”。 2. 前端性能分析&a…

MYSQL 常见锁机制详解,常见锁问题排查及分析

1,锁分类 锁冲突是影响数据库性能的重要指标,本章节介绍MYSQL常见锁,及各种说的常用示例,mysql锁的分类如下: 从操作类型分类:读锁、写锁; 从操作粒度分类:表锁、页锁、行锁&#x…