我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python3爬取租房的信息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python3爬取租房的信息

下面做个爬取租房信息python3脚本

# -*- coding: utf-8 -*-
# File  : 爬取租房信息.py
# Author: HuXianyong
# Date  : 2018-08-30 15:41


from urllib import request
from time import sleep
from lxml import etree


'''
在开始之前我们应该先查看下我们每次打开下一页链家网页的时候他的url上面有什么变化
我们每每点击下一页的时候他的url也对应的加上了page+n
还有就是referer也变化了,变成了我们的上一页
因此我们就需要对着这个变化来对url和referer做处理才能实现多页爬取数据
别的网页也应是有规律的
我们就用这个规律来做就好了

我们就只需要改变url和referer就好,其他的和单页抓取数据一样的

这里增加了地域的房屋,我们通过观察几页的url上面的改变,url都是由
链家域名+地域+页数来组成的,我们因此拼接出url

'''
#我这里定义这个函数是抓取但也数据的,上个函数的循环把要抓取的页数传递到这里来
#我就抓取他给我传过来的那一页就行
def grap_data(area,page):
    page=int(page)

    #如果是第一页他的url就是当前页referer是什么都行,只要链家的就行
    if page == 1 :
        referer=url = "https://bj.lianjia.com/zufang/%s/"

    #第二页他的rferer是和第一页的referer和url是一样的,url的page变成了第二页
    elif page == 2:
        url = "https://bj.lianjia.com/zufang/%s/page%s/"%(area,page)
        referer = "https://bj.lianjia.com/zufang/%s/"%area
    else:
        url = "https://bj.lianjia.com/zufang/%s/page%s/" % (area,page)
        referer = "https://bj.lianjia.com/zufang/%s/page%s/"%(area,int(page-1))

    headers = {
        #rerferer 的意思是引应用的上个页面是什么,这个的作用是防盗链,有的网站会用这个来判断是否是盗链过来的
        #如果没有加这个,有的网页会打不开,加这个养成一个良好的习惯
        "Referer": referer,
        #user-agent的意思很明显就是客户端的用户信息,包括系统版本,浏览器等的信息
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
        #可能还有别的信息需要加在头上,就看个人的需要了
    }

    req = request.Request(url=url,headers=headers)
    #这里的urlopen打开的是一个对象

    response = request.urlopen(req)

    #对爬取到的网页信息进行读取和解码
    result = response.read().decode("utf-8")

    #用xpath构建html匹配的对象
    html = etree.HTML(result)


    house_base = html.xpath('//ul[@id="house-lst"]/li/div[@class="info-panel"]')

    #定义一个接收房源信息的列表
    house_list = []
    #循环查询每页房屋信息
    for house in house_base:
        #获取房屋的名字
        house_name = house.xpath('h2/a')[0]

        #获取房屋的地址
        house_addr = house.xpath('div/div[@class="where"]/a/span[@class="region"]')[0]

        #获取房屋的大小
        house_size = house.xpath('div/div/span[@class="meters"]')[0]

        #获取房屋的价格
        house_price = house.xpath('div/div[@class="price"]/span[@class="num"]')[0]

        #获取房屋的链接
        house_link = house.xpath('h2/a/@href')[0]
        #print(house_link)

        #接收房屋的经纪人和经纪人的电话
        broker_name,broker_phone = grap_broker(house_link,url)

        house_dict = {
            "房屋的地址" : house_addr.text.strip(),
            "房屋的名字": house_name.text.strip(),
            "房子的大小":house_size.text.strip(),
            "房子的价格":house_price.text.strip(),
            "经纪人电话":broker_phone,
            "经纪人名字":broker_name
        }
        house_list.append(house_dict)
        #这里可以加入字典,当然也是可以写入数据库里面的
        sleep(0.5)
        print(house_dict)

#定义一个第二次打开网页的函数,来调出我们需要的经纪人信息
def grap_broker(house_link,url):

        # 到此我们可以抓去除房屋的外联
        # 但是这个不是我们需要的,我们需要的是经纪人的信息,我们因此需要打开这个网页来回获取到我们想要的信息

        # 打开网页
        link_headers = {
            "Referer": url,
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
        }
        link_req = request.Request(url=house_link, headers=link_headers)
        link_response = request.urlopen(link_req)
        link_result = link_response.read().decode("utf-8")

        link_html = etree.HTML(link_result)
        #刚开始在这里卡住了好半天,原因是因为没有经纪人信息,所以报错了
        #因此这里需要加个异常处理,来处理没有经纪人的的情况
        try:
            #获取经纪人的电话号码和用户名
            broker_phone = link_html.xpath('//div[@class="brokerInfoText"]/div[@class="phone"]')[0].text.strip()
            broker_name = link_html.xpath('//div[@class="brokerInfo"]/div/div[@class="brokerName"]/a')[0].text
            #print(broker_name.text)
        except Exception :
            #没有经纪人的,使用固定的经纪人和电话号码
            broker_name = "客服"
            broker_phone = "10109666"
        return broker_name,broker_phone
#这里定义的是需要爬取的是哪一些的数据
def start(area,page):
    for num in range(1,int(page+1)):
        print("-"*70+'这个是%s第%s页的数据'%(area,num)+'-'*70)
        #调用爬取数据的函数
        grap_data(area,page)

if __name__ == "__main__":
    start('changping',5)
    start('changping',5)


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python3爬取租房的信息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python3爬取租房的信息

下面做个爬取租房信息python3脚本# -*- coding: utf-8 -*-# File  : 爬取租房信息.py# Author: HuXianyong# Date  : 2018-08-30 15:41from urllib i
2023-01-31

python3对于抓取租房房屋信息的进一

# -*- coding: utf-8 -*-# File : 7链家抓取--抓取经纪人信息.py# Author: HuXianyong# Date : 2018-08-30 15:41from urllib import reque
2023-01-31

Python怎么爬取城市租房信息

这篇文章主要介绍了Python怎么爬取城市租房信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么爬取城市租房信息文章都会有所收获,下面我们一起来看看吧。思路:先单线程爬虫,测试可以成功爬取之后再
2023-06-30

深圳租房信息爬虫

考虑到以后可能会在深圳工作,所以写了这个爬虫,希望对自己的找房过程提供一些便捷。信息来源是豆瓣的深圳租房小组(想爬取其他城市只需要更换一下URL就好)。你们一定会说这么麻烦干什么,租房APP不是直接看么?我也是这么想的。。。但是租房APP上
2023-01-30

我的第一个爬虫,爬取北京地区短租房信息

# 导入程序所需要的库。import requestsfrom bs4 import BeautifulSoupimport time# 加入请求头伪装成浏览器headers = { #通过Chrome浏览器复制User-Agent
2023-01-30

python如何进行爬取链家二手房租赁信息

本篇文章给大家分享的是有关python如何进行爬取链家二手房租赁信息,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大家在外打拼的时候都需要租房子住,于是大家就会上各种房子租赁的
2023-06-02

如何用Python获取成都租房信息

这篇文章将为大家详细讲解有关如何用Python获取成都租房信息,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。信息数据的获取,这里首先收集赶集网和自如网的信息。1. 赶集网信息获取I. 获取当
2023-06-02

python 爬虫 5i5j房屋信息 获

1 from lxml import etree 2 from selenium import webdriver 3 import pymysql 4 5 def Geturl(fullurl):#获取每个招聘网页的链接 6 b
2023-01-30

怎么用python爬虫房屋信息

使用Python编写爬虫可以轻松爬取房屋信息,以下是一个简单的示例代码:pythonimport requestsfrom bs4 import BeautifulSoup# 定义爬取房屋信息的函数def get_house_info(ur
2023-10-19

python 爬取mm信息

# -*- coding:utf-8 -*- import requestsfrom bs4 import BeautifulSoupimport sysimport rereload(sys)sys.setdefaultencoding(
2023-01-31

Python爬虫项目--爬取自如网房源信

本次爬取自如网房源信息所用到的知识点:1. requests get请求2. lxml解析html3. Xpath4. MongoDB存储正文1.分析目标站点1. url: http://hz.ziroom.com/z/nl/z3.html
2023-01-30

python爬取某站上海租房图片

前言  对于一个net开发这爬虫真真的以前没有写过。这段时间开始学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬虫的第三方库Requests与BeautifulSoup。python 版本:python3
2023-01-31

Python3:获取天气信息

防伪码:没有相当程度的孤独是不可能有内心的平和。Python版本Python3.5.3天气预报 Web 服务参考http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=g
2023-01-31

python爬取主播信息

之前学过python的爬虫技术,现在回顾一下看看还会不会,果然有坑。先爬取了微博评论网友的id代码如下import requestsurl = 'https://m.weibo.cn/api/comments/show?id=4188633
2023-01-31

python爬取nba今天的信息

最近无聊在写python爬虫,分享一个爬去nba今天信息的python脚本,可能没写的美观,有优化的请大神指点!➜  /test sudo vim nba.py#!/usr/bin/python#-*- coding:utf-8 -*-cl
2023-01-31

Python爬取租房数据实例是怎么样的

这篇文章给大家介绍Python爬取租房数据实例是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么叫爬虫爬虫,又名“网络爬虫”,就是能够自动访问互联网并将网站内容下载下来的程序。它也是搜索引擎的基础,像百度
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录