import os.path

import requests
from lxml import etree
import xlwt
import xlrd def create_excel():
if not os.path.exists('./lianjia_excel.xls'):
book = xlwt.Workbook(encoding='utf-8', style_compression=0) sheet = book.add_sheet(f'{city}-链家二手房', cell_overwrite_ok=True)
col = ('房源名称', '所在小区', '所在地区', '房源信息', '发布时间', '房源标签', '房源价格', '房源单价')
# 创建列名
for i in range(0, 8):
sheet.write(0, i, col[i])
savepath = './lianjia_excel.xls'
book.save(savepath)
return book
book = xlrd.open_workbook('./lianjia_excel.xls') # 得到文件
return book if __name__ == '__main__':
city = input('请输入需要查询的城市数据:')
# 创建一个excel
book = xlwt.Workbook(encoding='utf-8', style_compression=0) sheet = book.add_sheet(f'{city}-链家二手房', cell_overwrite_ok=True)
col = ('房源名称', '所在小区', '所在地区', '房源信息', '发布时间', '房源标签', '房源价格', '房源单价')
# 创建列名
for i in range(0, 8):
sheet.write(0, i, col[i]) url = 'https://cd.lianjia.com/ershoufang/'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
} page = requests.get(url=url, headers=headers)
page.encoding = 'utf-8'
tree = etree.HTML(page.text)
li_list = tree.xpath('//div[@class="content "]/div/ul[@class="sellListContent"]/li')
data_list = []
for li in li_list: li_div = li.xpath('./div[@class="info clear"]')
if len(li_div) <= 0:
continue
li_div = li.xpath('./div[@class="info clear"]')[0]
# 房源名称
li_title = li_div.xpath('./div[@class="title"]/a/text()')[0] # 房源链接
li_url = li_div.xpath('./div[@class="title"]/a/@href')[0]
# 所在小区
li_xiaoqu = li_div.xpath('./div[@class="flood"]/div/a[1]/text()')[0]
# 所在小区URL
li_xiaoqu_url = li_div.xpath('./div[@class="flood"]/div/a[1]/@href')[0]
# 所在地区
li_diqu = li_div.xpath('./div[@class="flood"]/div/a[2]/text()')[0]
# 所在地区URL
li_diqu_url = li_div.xpath('./div[@class="flood"]/div/a[2]/@href')[0]
# 房源信息
li_houseinfo = li_div.xpath('./div[@class="address"]/div/text()')[0]
# 发布时间
li_followinfo = li_div.xpath('./div[@class="followInfo"]//text()')
# 房源标签
li_tag = li_div.xpath('./div[@class="tag"]//text()')
# 房源总价
li_price = li_div.xpath('./div[@class="priceInfo"]/div[1]/span/text()')[0]
li_price = li_price + '万'
# 房源单价
li_unitPrice = li_div.xpath('./div[@class="priceInfo"]/div[2]/span/text()')[0]
data_list.append([li_title, li_xiaoqu, li_diqu, li_houseinfo, li_followinfo, li_tag, li_price, li_unitPrice]) for data in data_list:
for i in range(0, len(data_list)):
data = data_list[i]
for j in range(0, 8):
sheet.write(i + 1, j, data[j])
savepath = './lianjia_excel.xls'
book.save(savepath)

excel保存效果如图:

xpath拉取链家二手房信息并保存到excel中的更多相关文章

  1. 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中

    import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...

  2. 使用requests、re、BeautifulSoup、线程池爬取携程酒店信息并保存到Excel中

    import requests import json import re import csv import threadpool import time, random from bs4 impo ...

  3. python爬取链家二手房信息,确认过眼神我是买不起的人

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  4. 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...

  5. 第三方模块的下载与使用、requests模块、爬取链家二手房数据、openpyxl模块、hashlib加密模块

    目录 第三方模块的下载与使用 下载第三方模块可能会出现的问题 网络爬虫模块之requests模块 网络爬虫实战之爬取链家二手房数据 自动化办公领域之openpyxl模块 第三方模块的下载与使用 第三方 ...

  6. python抓取链家房源信息(二)

    试着用scrapy将之前写的抓取链家网信息的重新写了写 然后先是用了第一页的网页作为测试,调试代码,然后发现总是抓取的时候遇见了 类似于这样的问题,并且抓取不到信息 2017-03-28 17:52: ...

  7. 【nodejs 爬虫】使用 puppeteer 爬取链家房价信息

    使用 puppeteer 爬取链家房价信息 目录 使用 puppeteer 爬取链家房价信息 页面结构 爬虫库 pupeteer 库 实现 打开待爬页面 遍历区级页面 方法一 方法二 遍历街道页面 遍 ...

  8. python3 爬虫教学之爬取链家二手房(最下面源码) //以更新源码

    前言 作为一只小白,刚进入Python爬虫领域,今天尝试一下爬取链家的二手房,之前已经爬取了房天下的了,看看链家有什么不同,马上开始. 一.分析观察爬取网站结构 这里以广州链家二手房为例:http:/ ...

  9. Python爬取链家二手房源信息

    爬取链家网站二手房房源信息,第一次做,仅供参考,要用scrapy.   import scrapy,pypinyin,requests import bs4 from ..items import L ...

  10. python抓取链家房源信息(三)

    之前写过一个链家网北京二手房的数据抓取,然后本来今天想着要把所有的东西弄完,但是临时有事出去了一趟,耽搁了一下,然后现在是想着把北京的二手房的信息都进行抓取,并且存储在mongodb中, 首先是通过' ...

随机推荐

  1. Java入门与进阶 P-1.9+P-1.10

    计算机的优先级 所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符.赋值运算符和三目运算符例外,其中,单目运算符.赋值运算符和三目运算符是从右向左结合 ...

  2. 同类型芯片资源对比-CH32x芯片快速应用说明

    CH32Fx 系列芯片是基于 Cortex-M3 内核设计的微控制器,所以与大部分 ARM 工具和软件兼容. 此外,其外设和硬件设计兼容市场上一些主流微控制器,并在性能和功能上有所增强, 方便用户快速 ...

  3. Python第三方库arrow

    Python第三方库arrow https://pypi.org/project/arrow/ 简介 处理时间日期的一个第三方库 Arrow is a Python library that offe ...

  4. Vue 26 plugins

    1 简介 它是用来增强vue的.它是包含install方法的一个对象,install的第一个参数是Vue,第二个以后参数是插件使用者传入的参数 插件里面可以配置全局过滤器.全局指令.混入.Vue原型上 ...

  5. 2 .NET Core笔试题

    1.说说在Linux系统部署ASP.NET Core项目的步骤. 2.说说热重载是什么. 3.如何理解鉴权和授权两个词 4.说说.NET7包含了几大方向的开发? 5.如何理解云原生? 6.ASP.NE ...

  6. 利用Git+GitHub进行团队协作开发

    自己之前写过两篇关于Git和GItHub使用的文章,分别是 浅谈使用git 进行版本控制博客链接:https://www.cnblogs.com/wj-1314/p/7992543.html 使用Gi ...

  7. ctfshow_web入门 反序列化(254~266)

    要是没接触过的师傅们,可以先看看这个 web 254 这个题没有考什么,get方式传入payload即可,这里xxxxxx,就是6gex而已 payload: ?username=xxxxxx& ...

  8. Quill编辑器实现原理初探

    简介 从事前端开发的同学,对富文本编辑器都不是很陌生.但是大多数富文本编辑器都是开箱即用,很少会对其实现原理进行深入的探讨.假如静下心去细细品味,会发现想要做好一款富文本编辑器,需要对整个前端生态有较 ...

  9. Hbase学习三:Hbase常用命令总结

    转载请注明出处: 1.Hbase连接 1.1.进入hbase命令行 hbase shell # 或 bin/hbase shell 1.2.查看帮助 help 1.3.查看所有表 list 2.表操作 ...

  10. Sidecar-详解 JuiceFS CSI Driver 新模式

    近期发布的 JuiceFS CSI Driver v0.18 版本中,我们提供了一种全新的方式访问文件系统,即 JuiceFS 客户端以 Sidecar 方式运行于应用 Pod 中,且客户端与应用同生 ...