首先在主页面中爬取详情页面的url
主页面示例:

详情页面示例:

在详情页面中我们可以爬取到小区的名称、房价、建筑年代、建筑类型、物业费用等各类信息
详细代码如下:

import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class LianjiaXiaoqu:def __init__(self,page_url):self.page_url=page_url#1.爬取主页面的详情页面网址def info_url(self,page_url):href_list = []driver = webdriver.Chrome(executable_path="")#chromedriver的启动路径# chromedriver下载网站:https://registry.npmmirror.com/binary.html?path=chromedriverwait = WebDriverWait(driver, 10)wait.until(EC.presence_of_element_located((By.TAG_NAME, "body")))driver.get(page_url)li_list = driver.find_elements_by_xpath("//div[@class='info']")for li in li_list:title = li.find_element_by_xpath("./div[@class='title']/a").textprint(title)href = li.find_element_by_xpath("./div[@class='title']/a").get_attribute("href")href_list.append(href)driver.quit()return href_list[0:10]#2.根据主页面中获取详情页面的网址,再在详情页面中爬取相应的房产信息def info_content(self,url):title_list = []address_list = []price_list = []type_list = []PropertyPrice_list = []BuildingNumber_list = []DoorNumber_list = []driver = webdriver.Chrome(executable_path="")       #chromedriver的启动路径driver.get(url)wait = WebDriverWait(driver, 10)wait.until(EC.presence_of_element_located((By.TAG_NAME, "body")))item = {"title": title_list, 'address': address_list, 'price': price_list, 'type': type_list,'PropertyPrice': PropertyPrice_list, 'BuildingNumber': BuildingNumber_list,'DoorNumber': DoorNumber_list}try:title = driver.find_element_by_xpath("//h1[@class='detailTitle']").textexcept:title=Nonetry:address = driver.find_element_by_xpath("//div[@class='detailDesc']").textexcept :address=Nonetry:price = driver.find_element_by_xpath("//span[@class='xiaoquUnitPrice']").textexcept:price=Nonetry:type = driver.find_element_by_xpath("//div[@class='xiaoquInfo']/div[@class='xiaoquInfoItem'][2]/span[@class='xiaoquInfoContent']").textexcept:type=Nonetry:PropertyPrice = driver.find_element_by_xpath("//div[@class='xiaoquInfo']/div[@class='xiaoquInfoItem'][3]/span[@class='xiaoquInfoContent']").textexcept:PropertyPrice=Nonetry:BuildingNumber = driver.find_element_by_xpath("//div[@class='xiaoquInfo']/div[@class='xiaoquInfoItem'][6]/span[@class='xiaoquInfoContent']").textexcept:BuildingNumber=Nonetry:DoorNumber = driver.find_element_by_xpath("//div[@class='xiaoquInfo']/div[@class='xiaoquInfoItem'][7]/span[@class='xiaoquInfoContent']").textexcept:DoorNumber=Nonetitle_list.append(title)address_list.append(address)price_list.append(price)type_list.append(type)PropertyPrice_list.append(PropertyPrice)BuildingNumber_list.append(BuildingNumber)DoorNumber_list.append(DoorNumber)driver.quit()return item#3.储存信息def save(self,item):file_path = "./爬取示例.xlsx"  #储存文件的路径及命名writer = pd.ExcelWriter(file_path)df = pd.DataFrame(item)df.to_excel(writer, 'sheet1', startcol=0, index=False)writer.save()return writer.save()def run(self):url_list= self.info_url(page_url)title_list = []address_list = []price_list = []type_list = []PropertyPrice_list = []BuildingNumber_list = []DoorNumber_list = []item = {"title": title_list, 'address': address_list, 'price': price_list, 'type': type_list,'PropertyPrice': PropertyPrice_list, 'BuildingNumber': BuildingNumber_list,'DoorNumber': DoorNumber_list}for url in url_list:info_item=self.info_content(url)values=info_item.values()title=list(values)[0][0]address=list(values)[1][0]price=list(values)[2][0]type=list(values)[3][0]PropertyPrice=list(values)[4][0]BuildingNumber=list(values)[5][0]DoorNumber=list(values)[6][0]title_list.append(title)address_list.append(address)price_list.append(price)type_list.append(type)PropertyPrice_list.append(PropertyPrice)BuildingNumber_list.append(BuildingNumber)DoorNumber_list.append(DoorNumber)print(item)file=self.save(item)return file
if __name__ == '__main__':url_temp = "https://sh.lianjia.com/xiaoqu/pg{}/"   #要爬取的主页面网址for x in range(1,2):    #要爬取第几到第几页的主页面page_url = url_temp.format(x)info=LianjiaXiaoqu(page_url)info.run()

爬取后的效果示例:

【python】链家小区信息爬取相关推荐

  1. python房子代码_基于python的链家小区房价爬取——仅需60行代码!

    简介 首先打开相关网页(北京链家小区信息). 注意本博客的代码适用于爬取某个城市的小区二手房房价信息. 如果需要爬取其他信息,可修改代码,链家的数据获取的基本逻辑都差不多. 效果展示 因为只需要60行 ...

  2. python爬取南京市房价_基于python的链家小区房价爬取——仅需60行代码

    简介 首先打开相关网页(北京链家小区信息). 注意本博客的代码适用于爬取某个城市的小区二手房房价信息. 如果需要爬取其他信息,可修改代码,链家的数据获取的基本逻辑都差不多. 效果展示 因为只需要60行 ...

  3. PyQt5+Python+Excel链家二手房信息爬取、可视化以及数据存取

    成果图: 第一步运行代码searsh.py,效果如下 第二步选择你所需要爬取数据的城市,如湖北-武汉 然后搜索,结果如下 如果你想爬取更多信息,只需要点击下一页即可 第三步,保存数据.可以将所显示的所 ...

  4. python链家二手房_python 爬取链家二手房信息

    '''Created on 2017-10-9 @author: wbhuangzhiqiang''' importsysimportreimportcsvimporturllib.requestfr ...

  5. 【Python爬虫项目】链家房屋信息抓取(超详细适合新手练习附源码)

    爬取链家房屋信息 爬取信息具体如下: 1.标题 2.位置 3.房屋介绍 4.房屋总价 5.房屋单价 一.检查网页源码 搜索标题中的关键字发现目标信息可以在源码中找到,所以我们请求该url网址就可以拿到 ...

  6. 爬虫系列之链家的信息爬取及数据分析

    关于链家的数据爬取和分析 已经实现 1.房屋数据爬取并下载 2.房屋按区域分析 3.房屋按经纪人分析 4.前十经纪人 5.经纪人最有可能的位置分析 6.实现以地区划分房屋 目前存在的问题: 1.多线程 ...

  7. 爬虫实战:链家租房数据爬取,实习僧网站数据爬取

    前面已经进行了爬虫基础部分的学习,于是自己也尝试爬了一些网站数据,用的策略都是比较简单,可能有些因素没有考虑到,但是也爬取到了一定的数据,下面介绍两个爬过的案例. 爬虫实战 链家网站爬取 实习僧网站爬 ...

  8. Python 爬虫 中国行政区划信息爬取 (初学者)

    Python 爬虫 中国行政区划信息爬取 (初学者) 背景 环境准备 代码片段 1.定义地址信息对象 2.地址解析对象 2.1 获取web信息 2.2 web信息解析 2.3 区划信息提取 2.4 省 ...

  9. python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析

    基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...

最新文章

  1. 机器学习与数据挖掘有什么异同?
  2. linux 自学系列:chown 目录权限设置
  3. hdu 4831(线段树---待解决)
  4. VTK:Rendering之WalkCow
  5. 100个网络基础知识,赶紧收藏吧!
  6. Dart 7-Day
  7. Hadoop的RPC工作原理
  8. 【clickhouse】ClickHouseException code: 999 Cannot allocate block number in ZooKeeper: Coordination
  9. 微服务升级_SpringCloud Alibaba工作笔记0026---Nacos之Linux安装nacos
  10. Office 程序默认打开方式
  11. python 类命名空间,关于python:命名空间和类
  12. paip.python错误解决13
  13. js原生获取html的高度,js中怎么获得浏览器的高度?
  14. 思科 配置标准ACL
  15. studio 3T破解
  16. C++ 栈实现逆波兰式求解运算式和两栈共享存储空间
  17. 3D模型欣赏:银发美女 ,性感女骑士
  18. 手机wifi延迟测试软件,测网速延迟(如何测试wifi延迟)
  19. 电脑android模拟器哪个好用,安卓模拟器哪个好用
  20. bat文件ping服务器,Windows下Ping一段IP地址的BAT

热门文章

  1. mysql的定点数_MySQL浮点数和定点数
  2. jQuery循环赋值 取值
  3. js幻灯片生成工具wow slider免费版去除水印的方法
  4. Gitee实现本地代码上传他人的远程仓库
  5. JAVA房产销售平台计算机毕业设计Mybatis+系统+数据库+调试部署
  6. DIY手动分解羊城通(转)
  7. svn与axure实现团队协同开发
  8. 如何解决母鸡服务器带宽跑满
  9. mysql8主从配置
  10. C++网络:IO复用epoll服务器-附带网络聊天室代码实例