精华内容
下载资源
问答
  • 每一个二手房的数据,都在网页的 li 标签里面,咱们可以获取网页返回的数据,然后通过解析,就可以获取到自己想要的数据了~ 获取网页数据 import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT ...
  • Item Pipeline介绍 Item对象是一个简单的容器,用于收集抓取到的数据,其提供了类似于字典(dictionary-like)的API,并具有用于声明可用字段的简单语法。 Scrapy的Item Pipeline(项目管道)是用于处理数据的组件。...
  • 一、准备条件 1)python环境,最好为python3 2)安装scrapy ,pip install scrapy ...如果还是不可以,则建立一个虚拟环境,在虚拟环境中安装scrapy即可...二、代码,由于我这里目的只是走通流程,所以爬取的数据不全,主

    一、准备条件
    1)python环境,最好为python3
    2)安装scrapy ,pip install scrapy
    如果报错ERROR: Faild building wheel for Twisted,去https://pypi.org/project/Twisted/#files下载对应的whl,然后pip insall xxx.whl文件,再重新安装scrapy即可。如果还是不可以,则建立一个虚拟环境,在虚拟环境中安装scrapy即可。

    二、代码,由于我这里目的只是走通流程,所以爬取的数据不全,主要是通过首页拿到详情页的地区和区域信息,如需其他字段信息,可自行参考代码进行改善。

    1)首先创建scrapy项目

    scrapy startproject Lianjia
    

    2)创建爬虫

    cd Lianjia
    scrapy genspider lianjia lianjia.com
    

    3)在其spider.py下的lianjia.py中写入如下代码:

    import scrapy
    from ..items import LianjiaItem, LianjiaDetailItem
    
    
    class LianjiaSpider(scrapy.Spider):
        name = 'lianjia'
        allowed_domains = ['lianjia.com']
        start_urls = ['https://dl.lianjia.com/ershoufang/rs/']
    
        def parse(self, response):
    
            secondarys = response.xpath('//*[@id="content"]/div[1]/ul/li')
    
    
            for sec in secondarys:
                item = LianjiaItem()
                item['title'] = sec.xpath('.//div[1]/div[1]/a/text()').extract_first() # 标题
                item['detail_url'] = sec.xpath('.//div[1]/div[1]/a/@href').extract_first() # 详情页链接
    
    
                if item['detail_url']:
    
                    # 向详情页发送请求
                    yield scrapy.Request(
                        item['detail_url'],
                        callback=self.detail_handle,
                        meta={"house":item}
                    )
                yield  item
    
    
    
            # 下一页
            url = response.xpath("//div[@class='page-box house-lst-page-box']/@page-data").extract_first()
            # 获取总页数
            pages = eval(url)['totalPage']
            for pa in range(int(pages)+1):
                next_url = 'https://dl.lianjia.com/' + '/ershoufang/pg{}'.format(pa)
                yield scrapy.Request(
                    url=next_url,
                )
    
    
        # 详情页
        def detail_handle(self, response):
    
            temp = response.meta['house']
            item = LianjiaDetailItem()
    
            # 获取详情页信息
            item['community'] = response.xpath('.//div[2]/div[5]/div[1]/a[1]/text()').extract_first() # 小区
            area_1 = response.xpath('.//div[2]/div[5]/div[2]/span[2]/a[1]/text()').extract_first() # 区域部分1
            area_2 = response.xpath('.//div[2]/div[5]/div[2]/span[2]/a[2]/text()').extract_first() # 区域部分2
            if area_1 and area_2:
                item['area'] = area_1 + ' ' + area_2
            else:
                item['area'] = area_1 or area_2
    
            yield item
    
    

    4)items.py

    # Define here the models for your scraped items
    #
    # See documentation in:
    # https://docs.scrapy.org/en/latest/topics/items.html
    
    import scrapy
    
    
    class LianjiaItem(scrapy.Item):
        # define the fields for your item here like:
        # name = scrapy.Field()
    
        title = scrapy.Field()  # 标题
        detail_url= scrapy.Field()  # 详情页链接
    
    
    class LianjiaDetailItem(scrapy.Item):
    
        title = scrapy.Field()  # 标题
        area = scrapy.Field()  # 区域
        community = scrapy.Field()  # 小区名称
    
    

    5)pipelines.py

    # Define your item pipelines here
    #
    # Don't forget to add your pipeline to the ITEM_PIPELINES setting
    # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
    
    
    # useful for handling different item types with a single interface
    import json
    from itemadapter import ItemAdapter
    
    
    # 保存为json文件
    class LianjiaPipeline(object):
    
        def __init__(self):
            self.file = open('Lianjia.json', 'w')
    
        def process_item(self, item, spider):
            item = dict(item)
            json_data = json.dumps(item, ensure_ascii=False) + ',\n'
            self.file.write(json_data)
    
            return item
    
        def __del__(self):
            self.file.close()
    
    
    

    6)settings.py中将ITEM_PIPELINES = {‘Lianjia.pipelines.LianjiaPipeline’: 300,} 的注释打开,好将USER_AGENT也打开,写入自己的请求头 或者上网找一个即可。
    7)在当前目录下执行

    scrapy crawl lianjia
    

    8)爬取结束后即可在当前目录下找到一个lianjia.json文件。点它。

    展开全文
  • 相信大家买房前都会在网上找找资料,看看行情,问问朋友,今天就带大家扒一扒《链家二手房》的数据: 一、查找数据所在位置: 打开链家官网,进入二手房页面,选取某个城市,可以看到该城市房源总数以及房源列表...

    相信大家买房前都会在网上找找资料,看看行情,问问朋友,今天就带大家扒一扒《链家二手房》的数据:

    一、查找数据所在位置:

    打开链家官网,进入二手房页面,选取某个城市,可以看到该城市房源总数以及房源列表数据。

    二、确定数据存放位置:

    某些网站的数据是存放在html中,而有些却api接口,甚至有些加密在js中,还好链家的房源数据是存放到html中:

    三、获取html数据:

    通过requests请求页面,获取每页的html数据

    # 爬取的url,默认爬取的南京的链家房产信息
    url = 'https://nj.lianjia.com/ershoufang/pg{}/'.format(page)
    # 请求url
    resp = requests.get(url, headers=headers, timeout=10)

    四、解析html,提取有用数据:

    通过BeautifulSoup解析html,并提取相应有用的数据

    soup = BeautifulSoup(resp.content, 'lxml')
    # 筛选全部的li标签
    sellListContent = soup.select('.sellListContent li.LOGCLICKDATA')
    # 循环遍历
    for sell in sellListContent:
        # 标题
        title = sell.select('div.title a')[0].string
        # 先抓取全部的div信息,再针对每一条进行提取
        houseInfo = list(sell.select('div.houseInfo')[0].stripped_strings)
        # 楼盘名字
        loupan = houseInfo[0]
        # 对楼盘的信息进行分割
        info = houseInfo[0].split('|')
        # 房子类型
        house_type = info[1].strip()
        # 面积大小
        area = info[2].strip()
        # 房间朝向
        toward = info[3].strip()
        # 装修类型
        renovation = info[4].strip()
        # 房屋地址
        positionInfo = ''.join(list(sell.select('div.positionInfo')[0].stripped_strings))
        # 房屋总价
        totalPrice = ''.join(list(sell.select('div.totalPrice')[0].stripped_strings))
        # 房屋单价
        unitPrice = list(sell.select('div.unitPrice')[0].stripped_strings)[0]

    以上就是我的分享,如果有什么不足之处请指出,多交流,谢谢!

    想获取更多数据或定制爬虫的请私信我

     

     

     

    展开全文
  • 链接:https://jn.lianjia.com/ershoufang/ 总结:pipelines中进行对数据的处理和保存格式以及保存位置 item封装数据

    链接:https://jn.lianjia.com/ershoufang/

    总结:pipelines中进行对数据的处理和保存格式以及保存位置
    item封装数据

    展开全文
  • 爬取链家二手房信息 步骤 定义一个url,程序向指定网站发送网络请求 接收网站响应并解析响应结果response html 根据需求筛选网站响应结果 将筛选之后得到的数据保存本地存储 代码 import requests import pandas ...

    爬取链家二手房信息

    步骤

    1. 定义一个url,程序向指定网站发送网络请求
    2. 接收网站响应并解析响应结果response html
    3. 根据需求筛选网站响应结果
    4. 将筛选之后得到的数据保存本地存储

    代码

    import requests
    import pandas as pd
    from lxml import etree 
    from pyecharts.charts import Bar
    
    url = 'https://cs.lianjia.com/ershoufang/'
    response = requests.get(url)   #<Response [200]>:请求状态码  2XX:请求成功 3XX:请求重定向 4XX:请求出现错误 5XX:服务器内部错误
    html_text = response.content.decode()
    
    html = etree.HTML(html_text)  #解析html
    ershoufang = []
    div_list = html.xpath('.//div[@class="info clear"]')
    for div in div_list:
        name = div.xpath('.//div[@class="positionInfo"]/a/text()')[0]
        price = div.xpath('.//div[@class="unitPrice"]/span/text()')[0].replace('元/平米','').replace('单价','')
        ershoufang.append([name,float(price)])
        #print(ershoufang)
        
    title = ['小区名称','小区单价(元/平米)']
    table = pd.DataFrame(ershoufang,columns = title)
    table.to_excel('C:\\Users\\ThinkPad\\Desktop\\面试\\ershoufang.xlsx') #保存到本地excel文件
    #可视化
    bar = Bar()
    bar.add_xaxis(list(table['小区名称']))
    bar.add_yaxis('长沙二手房房价',list(table['小区单价(元/平米)']))
    a = bar.render()
    

    可视化结果

    在这里插入图片描述

    展开全文
  • python爬取链家二手房信息

    千次阅读 2019-07-31 15:10:28
    显示的二手房信息每个url递增一 2、访问时要加头信息,否则无法访问 3、用beautifulsoup解析网页,找到二手房信息 4、将信息简单处理后保存成csv文件 具体代码如下: import requests import re from bs4 import ...
  • 爬取链家二手房信息

    2019-07-20 11:47:24
    由于爬取到的数据是保存到MySQL数据库中,所以需先在MySQL中创建数据库和表 数据库创建 # 创建数据库 create database lianjiadb charset=utf8; 进入数据库 # 进入创建的数据库 use lianjiadb; 创建表 # ...
  • 今天我们以python爬取链家二手房数据为例来进行一个python爬虫实战。(内附python爬虫源代码) 一、查找数据所在位置: 打开链家官网,进入二手房页面,选取某个城市,可以看到该城市房源总数以及房源列表数据。...
  • python爬取链家二手房楼盘数据信息

    千次阅读 2019-05-29 16:43:48
    想看下最近房价是否能入手,抓取链家二手房、新房的信息,发现广州有些精装修88平米的3房2厅首付只要29万!平均1.1万/平: 查看请求信息 本次用的是火狐浏览器32.0配合firebug和httpfox使用,基于python3环境,...
  • 解析网页 总结 内容简介 利用requests库和BeautifulSoup库爬取链家二手房的基本数据。 一、在写代码前我们应该做的事 你知道吗?写代码虽说是很重要但它其实并不是最重要的,再写代码前,我们应该先理好思路。我究竟...
  • python3爬虫(1)爬取链家二手房

    千次阅读 热门讨论 2019-01-07 15:49:57
    '链家二手房.xlsx' ,sheet_name = '链家二手房' )    ok基本完成,可能有没有说清楚的,留言我继续更新   1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 # Author;Tsukasa 4...
  • python爬虫爬取链家二手房信息

    万次阅读 热门讨论 2017-05-20 15:43:06
     我用scrapy实现了一个爬取链家二手房的爬虫,全部源码我已经放到github上了 https://github.com/xindoo/ershoufang 。我需要声明的是这只是个简答的demo,存在一些问题,接下来我先说明有哪些问题,再来看看核心...
  • 爬取链家二手房信息,数据存mongodb,代码如下: import requests from fake_useragent import UserAgent from lxml import etree import time import random from pymongo import MongoClient class ...
  • 用python爬取链家二手房楼盘

    千次阅读 2019-05-09 20:32:15
    想看下最近房价是否能入手,抓取链家二手房、新房的信息,发现广州有些精装修88平米的3房2厅首付只要29万!平均1.1万/平: 查看请求信息 本次用的是火狐浏览器32.0配合firebug和httpfox使用,基于python3环境,...
  • data_list = [] def start_spider(page): #设置重连次数 requests.adapters.DEFAULT_RETRIES = 15 s = requests.session() #设置连接活跃状态为False s.keep_alive = False #爬取的url,默认爬取的南京的链家房产信息...
  • 爬取链家二手房数据

    2021-11-19 19:39:12
    2.请求网页响应,爬取数据,并将爬取到的文件写入文档 etree = html.etree #解析字符串格式的HTML文档对象 headers ={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...
  • python 爬取链家网信息

    2017-12-10 21:46:21
    python3爬取链家网新房信息,然后解析入库,该资源仅用于学习研究所用,代码比较简单,还望轻喷,想免费分析,无奈CSDN强制要求资源分。所以大家不要怪我啊!
  • 爬取链家二手房信息,存储到数据库方便以后查看 文章目录页面分析引入库方法编写主函数编写运行结果 页面分析 分析页面后发现是前后端未分离的状态,所以需要使用xpath分析界面元素 在li中存放着对应的div,有...
  • Python爬虫爬取链家网设计源码,并进行可视化分析 python爬虫爬取款房网Python爬虫爬取链家网,并进行可视化分析,源码详细可靠,可以帮助大家进行详尽的学习。
  • python-scrapy-MongoDB 爬取链家二手房 链家二手房房源数据抓取 目标网址为http://bj.lianjia.com/ershoufang/ 分析网址 创建项目 scrapy startproject lianjia 创建爬虫文件 scrapy genspider -t crawl ...
  • 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有...爬取链家二手房信息 受害者地址 https://cs.lianjia.com/ershoufang/pg%7B%7D/ 基本环境配置 python 3.6 pycharm 代码 导入工具 ...
  • python爬虫爬取款房网Python爬虫爬取链家网,并进行可视化分析,源码详细可靠,可以帮助大家进行详尽的学习。
  • 链家成交记录网址:https://bj.lianjia.com/chengjiao/ 每页有30条成交记录,点击记录提示要下载APP才能查看详细信息。不管它,我们直接审查元素,找到成交记录的链接,点击打开。如下图   链接后面有一串数字,...
  • 最近在学习数据分析的相关知识,打算找一份数据做训练,于是就打算用Python爬取链家在重庆地区的二手房数据。 链家的页面如下: 爬取代码如下: import requests, json, time from bs4 import BeautifulSoup...
  • # 依次遍历每个选择器,获取二手房的名称,户型,面积,朝向等信息 for one_selector in list_selector: try: name = one_selector.xpath("div[@class = 'title']/a/text()").extract_first() other = one_selector...
  • 前言 本文的文字及图片来源...Python爬虫新手入门教学(一):爬取豆瓣电影排行信息 Python爬虫新手入门教学(二):爬取小说 基本开发环境 Python 3.6 Pycharm 相关模块的使用 requests parsel csv 安装Pytho
  • python爬虫爬取链家二手房信息(xpath)

    千次阅读 2019-11-17 18:33:16
    python爬虫爬取链家二手房信息 -- xpath需求流程详细代码 需求 将小区名称、厅室、面积、毛坯还是精装、楼层、建筑年代、板楼还是塔楼、总价和每平方米单价等信息爬取放入字典中 流程 查看想要的数据在网页...
  • 爬取北京链家二手房数据

    千次阅读 2020-01-08 17:57:07
    利用python爬取了北京链家主页的二手房数据,爬取时间为2020年1月8日。由于链家只显示了100页、每页30条,因此只能爬取3000条数据。 后续将爬取各区的小区名,对每个小区的在售二手房数据进行...# 爬取链家二手房数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,342
精华内容 536
关键字:

爬取链家二手房