不清楚的可以去GitHub点击进入https://github.com/Agile929/lianjia.git

这是主代码,其他代码可以去GitHub查看

# -*- coding: utf-8 -*-
import scrapy
from lianjia.settings import USER_AGENT_LIST
import random
import re
from lianjia.items import LianjiaItemclass LianjiaZufangSpider(scrapy.Spider):name = 'lianjia_zufang'allowed_domains = ['lianjia.com']base_url = "https://sz.lianjia.com/zufang/pg"page = 0start_urls = [base_url + str(page)]def parse(self, response):referer = self.base_url + str(self.page)headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9","Connection": "keep-alive","Host": "sz.lianjia.com","Referer": referer,"Upgrade-Insecure-Requests": "1","User-Agent": random.choice(USER_AGENT_LIST)}node_list = response.xpath('//div[@class="wrapper"]//ul[@id="house-lst"]/li')if not node_list:returnfor node in node_list:detail_url = node.xpath('./div[@class="info-panel"]/h2/a/@href').extract_first()yield scrapy.Request(url=detail_url, headers=headers, callback=self.parse_detail, meta={"detail_url": detail_url})self.page += 1yield scrapy.Request(url=self.base_url + str(self.page), headers=headers, callback=self.parse)def parse_detail(self, response):detail_html = response.body.decode("utf-8")node_list = response.xpath('//div[@class="content-wrapper"]/div[@class="overview"]/div[@class="content zf-content"]')for node in node_list:item = LianjiaItem()item["address"] = node.xpath('./div[@class="zf-room"]/p[7]/a[1]/text()').extract_first() + "-" + node.xpath('./div[@class="zf-room"]/p[7]/a[2]/text()').extract_first()item['price'] = re.compile(r'<span class="total">(.*?)</span>', re.S).findall(detail_html)[0]item["address_detail"] = node.xpath('./div[@class="zf-room"]/p[6]/a/text()').extract_first()item["detail_url"] = response.meta["detail_url"]item["area"] = node.xpath('./div[@class="zf-room"]/p[1]/text()').extract_first()item["floor"] = node.xpath('./div[@class="zf-room"]/p[3]/text()').extract_first()item["house_type"] = node.xpath('./div[@class="zf-room"]/p[2]/text()').extract_first()item["release_time"] = node.xpath('./div[@class="zf-room"]/p[8]/text()').extract_first()item["content"] = response.xpath('//div[@class="content-wrapper"]//div[@class="title"]/h1/text()').extract_first()yield item

执行结果

有问题请留言

使用scrapy框架爬取链家网站租房信息相关推荐

  1. python爬取南京市房价_Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

  2. python爬取链家房价消息_Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

  3. Python爬取链家北京租房信息!北京租房都租不起啊!

    一.效果图 二.代码 import re from fake_useragent import UserAgent from lxml import etree import asyncio impo ...

  4. python爬取链家网实例——scrapy框架爬取-链家网的租房信息

    说明: 本文适合scrapy框架的入门学习. 一.认识scrapy框架 开发python爬虫有很多种方式,从程序的复杂程度的角度来说,可以分为:爬虫项目和爬虫文件. scrapy更适合做爬虫项目,ur ...

  5. Python爬取链家北京租房信息

    刚学习了python,中途遇到很多问题,查了很多资料,最关键的就是要善于调试,div信息一定不要找错,下面就是我爬取租房信息的代码和运行结果: 链家的房租网站 两个导入的包 1.requests 用来 ...

  6. 爬取链家网站的北京租房信息

    本来准备这个暑假好好复习,但学校安排暑期实践,既然学校安排这个,而且我自己也觉得需要提高一下自己的能力,所以静下心来做点事吧.我们要做到项目是分析北京地区的租房的信息分析. 我们需要做的是爬取链家网站 ...

  7. 爬取链家网站中的租房信息

    爬取链家网站中的租房信息 信息爬取代码 信息爬取代码 import requests from lxml import etree import pandas as pdwith open('zufa ...

  8. 如何高效地爬取链家的房源信息(四)

    "Python实现的链家网站的爬虫第四部分,最后一部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第 ...

  9. 如何高效地爬取链家的房源信息(三)

    "Python实现的链家网站的爬虫第三部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分为基础 ...

  10. 如何高效地爬取链家的房源信息(二)

    "Python实现的链家网站的爬虫第二部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分: 如 ...

最新文章

  1. 苹果系统怎么降低版本_1903、1809...到底怎么看系统版本?
  2. 【发布】温度监测报警器v1.2a内测版!
  3. 天大计算机英语面试,天大学姐英语面试干货,适合“三无”考研党!
  4. WinCE中中断的处理过程(驱动开发人员角度)
  5. Swift学习字符串、数组、字典
  6. NP管理器v3.0.25 一键添加去除apk对话框等
  7. Spring自学日志06(Aop)
  8. kickstart 为 rhel5 创建 ext4 分区
  9. SQL数据库语言基础之SqlServer条件查询、排序数据表、like模糊查询【大总结】
  10. 【Java】springboot学习笔记二
  11. 能打开java文件的软件有哪些_使用JAVA打开本地应用程序相关的文件
  12. linux安装opencv让输入密码,Linux下安装OpenCV步骤
  13. dll反编译(dll反编译工具)
  14. spssfisher判别分析步骤_SPSS判别分析
  15. VR全景营销实质体验店铺的实际情况
  16. c 字符输入与验证,毁人不倦
  17. 讯飞AIUI智能机器人1
  18. 【愚公系列】2022年04月 密码学攻击-RSA之共模和模不互素
  19. nodejs+vue+elementui鲜花销售商城管理系统410
  20. 程序员干到30岁,真的只能转行了么?

热门文章

  1. Java.I/O流编程一览笔录
  2. AID Learning设置aidcode的启动页面
  3. 设计模式之单例模式(Singleton)
  4. elementUI Tree组件实现双击事件
  5. esxi能直通的显卡型号_最便宜能高画质“吃鸡”的显卡是这个型号:RX470矿卡!...
  6. 随心所欲的“四舍五入” 之 ROUNDUP函数如何使用?
  7. python命令输入if_SPSS中Recode、Compute、Count、If命令
  8. 提神醒脑 MVP、MVVM 关系精讲
  9. 计算机联锁中JDF是什么组合,2019年新准线海勒斯壕南站站改工程招标公告
  10. Visual Studio添加代码片段