xpath拉取链家二手房信息并保存到excel中
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中的更多相关文章
- 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中
import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...
- 使用requests、re、BeautifulSoup、线程池爬取携程酒店信息并保存到Excel中
import requests import json import re import csv import threadpool import time, random from bs4 impo ...
- python爬取链家二手房信息,确认过眼神我是买不起的人
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 用python实现批量获取Linux主机简要信息并保存到Excel中 unstable 1.1
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #filename get_linux_info.py #获取Linux主机的信息 # titles=[' ...
- 第三方模块的下载与使用、requests模块、爬取链家二手房数据、openpyxl模块、hashlib加密模块
目录 第三方模块的下载与使用 下载第三方模块可能会出现的问题 网络爬虫模块之requests模块 网络爬虫实战之爬取链家二手房数据 自动化办公领域之openpyxl模块 第三方模块的下载与使用 第三方 ...
- python抓取链家房源信息(二)
试着用scrapy将之前写的抓取链家网信息的重新写了写 然后先是用了第一页的网页作为测试,调试代码,然后发现总是抓取的时候遇见了 类似于这样的问题,并且抓取不到信息 2017-03-28 17:52: ...
- 【nodejs 爬虫】使用 puppeteer 爬取链家房价信息
使用 puppeteer 爬取链家房价信息 目录 使用 puppeteer 爬取链家房价信息 页面结构 爬虫库 pupeteer 库 实现 打开待爬页面 遍历区级页面 方法一 方法二 遍历街道页面 遍 ...
- python3 爬虫教学之爬取链家二手房(最下面源码) //以更新源码
前言 作为一只小白,刚进入Python爬虫领域,今天尝试一下爬取链家的二手房,之前已经爬取了房天下的了,看看链家有什么不同,马上开始. 一.分析观察爬取网站结构 这里以广州链家二手房为例:http:/ ...
- Python爬取链家二手房源信息
爬取链家网站二手房房源信息,第一次做,仅供参考,要用scrapy. import scrapy,pypinyin,requests import bs4 from ..items import L ...
- python抓取链家房源信息(三)
之前写过一个链家网北京二手房的数据抓取,然后本来今天想着要把所有的东西弄完,但是临时有事出去了一趟,耽搁了一下,然后现在是想着把北京的二手房的信息都进行抓取,并且存储在mongodb中, 首先是通过' ...
随机推荐
- Java入门与进阶 P-1.9+P-1.10
计算机的优先级 所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符.赋值运算符和三目运算符例外,其中,单目运算符.赋值运算符和三目运算符是从右向左结合 ...
- 同类型芯片资源对比-CH32x芯片快速应用说明
CH32Fx 系列芯片是基于 Cortex-M3 内核设计的微控制器,所以与大部分 ARM 工具和软件兼容. 此外,其外设和硬件设计兼容市场上一些主流微控制器,并在性能和功能上有所增强, 方便用户快速 ...
- Python第三方库arrow
Python第三方库arrow https://pypi.org/project/arrow/ 简介 处理时间日期的一个第三方库 Arrow is a Python library that offe ...
- Vue 26 plugins
1 简介 它是用来增强vue的.它是包含install方法的一个对象,install的第一个参数是Vue,第二个以后参数是插件使用者传入的参数 插件里面可以配置全局过滤器.全局指令.混入.Vue原型上 ...
- 2 .NET Core笔试题
1.说说在Linux系统部署ASP.NET Core项目的步骤. 2.说说热重载是什么. 3.如何理解鉴权和授权两个词 4.说说.NET7包含了几大方向的开发? 5.如何理解云原生? 6.ASP.NE ...
- 利用Git+GitHub进行团队协作开发
自己之前写过两篇关于Git和GItHub使用的文章,分别是 浅谈使用git 进行版本控制博客链接:https://www.cnblogs.com/wj-1314/p/7992543.html 使用Gi ...
- ctfshow_web入门 反序列化(254~266)
要是没接触过的师傅们,可以先看看这个 web 254 这个题没有考什么,get方式传入payload即可,这里xxxxxx,就是6gex而已 payload: ?username=xxxxxx& ...
- Quill编辑器实现原理初探
简介 从事前端开发的同学,对富文本编辑器都不是很陌生.但是大多数富文本编辑器都是开箱即用,很少会对其实现原理进行深入的探讨.假如静下心去细细品味,会发现想要做好一款富文本编辑器,需要对整个前端生态有较 ...
- Hbase学习三:Hbase常用命令总结
转载请注明出处: 1.Hbase连接 1.1.进入hbase命令行 hbase shell # 或 bin/hbase shell 1.2.查看帮助 help 1.3.查看所有表 list 2.表操作 ...
- Sidecar-详解 JuiceFS CSI Driver 新模式
近期发布的 JuiceFS CSI Driver v0.18 版本中,我们提供了一种全新的方式访问文件系统,即 JuiceFS 客户端以 Sidecar 方式运行于应用 Pod 中,且客户端与应用同生 ...