1. 先看效果


2. 进入链家网,这里我选择的是海口市点击跳转到链家网

3. 先看网页的结构,这些房子的信息都在li标签,而li标签再ul标签,所以怎么做大家都懂

4. 代码如下,url的链接大家可以自己翻页看看就找到规律了,这里就不多说了

url = 'https://hk.lianjia.com/ershoufang/pg{}/'.format(page)
# 请求url
resp = requests.get(url, headers=headers)
# 讲返回体转换成Beautiful
soup = BeautifulSoup(resp.content, 'lxml')
# 筛选全部的li标签
sellListContent = soup.select('.sellListContent li.LOGCLICKDATA')

5. 再看看我们需要提取信息的结构

6. 代码附上,其中会做一些数据清洗,大家爬的时候就知道了,对了,其中stripped_strings返回来的是一个迭代器,所以需要转换成list

# 循环遍历for sell in sellListContent:try:# 题目title = sell.select('div.title a')[0].string# 先抓取全部的div信息,再针对每一条进行提取houseInfo = list(sell.select('div.houseInfo')[0].stripped_strings)# 楼盘名字loupan = houseInfo[0]# 对剩下的信息进行分割info = houseInfo[1].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]# 声明一个字典存储数据data_dict = {}data_dict['title'] = titledata_dict['loupan'] = loupandata_dict['house_type'] = house_typedata_dict['area'] = areadata_dict['toward'] = towarddata_dict['renovation'] = renovationdata_dict['positionInfo'] = positionInfodata_dict['totalPrice'] = totalPricedata_dict['unitPrice'] = unitPricedata_list.append(data_dict)print(data_dict)

7. 完整代码附上

import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import json
import csv
import time# 构建请求头
ua = UserAgent()
headers = {'user-agent': ua.Chrome
}# 声明一个列表存储字典
data_list = []def start_spider(page):url = 'https://hk.lianjia.com/ershoufang/pg{}/'.format(page)# 请求urlresp = requests.get(url, headers=headers)# 讲返回体转换成Beautifulsoup = BeautifulSoup(resp.content, 'lxml')# 筛选全部的li标签sellListContent = soup.select('.sellListContent li.LOGCLICKDATA')# 循环遍历for sell in sellListContent:try:# 题目title = sell.select('div.title a')[0].string# 先抓取全部的div信息,再针对每一条进行提取houseInfo = list(sell.select('div.houseInfo')[0].stripped_strings)# 楼盘名字loupan = houseInfo[0]# 对剩下的信息进行分割info = houseInfo[1].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]# 声明一个字典存储数据data_dict = {}data_dict['title'] = titledata_dict['loupan'] = loupandata_dict['house_type'] = house_typedata_dict['area'] = areadata_dict['toward'] = towarddata_dict['renovation'] = renovationdata_dict['positionInfo'] = positionInfodata_dict['totalPrice'] = totalPricedata_dict['unitPrice'] = unitPricedata_list.append(data_dict)print(data_dict)except Exception as e:continuedef main():# 只爬取10页for page in range(1, 10):start_spider(page)time.sleep(3)# 将数据写入json文件with open('data_json.json', 'a+', encoding='utf-8') as f:json.dump(data_list, f, ensure_ascii=False, indent=4)print('json文件写入完成')# 将数据写入csv文件with open('data_csv.csv', 'w', encoding='utf-8', newline='') as f:# 表头title = data_list[0].keys()# 创建writer对象writer = csv.DictWriter(f, title)# 写入表头writer.writeheader()# 批量写入数据writer.writerows(data_list)print('csv文件写入完成')if __name__ == '__main__':main()

python爬虫——使用bs4爬取链家网的房源信息相关推荐

  1. 基于python多线程和Scrapy爬取链家网房价成交信息

    文章目录 知识背景 Scrapy- spider 爬虫框架 SQLite数据库 python多线程 爬取流程详解 爬取房价信息 封装数据库类,方便多线程操作 数据库插入操作 构建爬虫爬取数据 基于百度 ...

  2. 【爬虫】爬取链家网青城山二手房源信息

    一.项目背景 本项目是用python爬虫来实现爬取链家网青城山的二手房信息,我们小组是针对于在我们成都东软学院周边的二手房信息做一个数据爬取和建表.我们小组做这个项目的背景是因为在不久的将来,我们大学 ...

  3. Python爬虫爬取链家网上的房源信息练习

    一 原链接:用Python爬虫爬取链家网上的房源信息_shayebuhui_a的博客-CSDN博客_python爬取链家 打开链家网页:https://sh.lianjia.com/zufang/  ...

  4. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  5. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  6. 五十七、爬取链家网北京二手房信息,并进行线性回归建模

    @Author : By Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严 ...

  7. 爬取链家网北京房源及房价分析

    爬取链家网北京房源及房价分析 文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍 1.数据获取 # 获取某市区域的所有 ...

  8. python爬取链家新房_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  9. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

最新文章

  1. 宏基因组QIIME2专题讨论群
  2. python 写入excel_使用python将数据写入excel
  3. android点击视频使用固定应用打开,Android 使用intent打开手机自带应用播放视频,音频,文档,还有打开应用市场...
  4. 【C++】41. std::copy和assign的用法
  5. Java 类型转换String,List,Map,Array
  6. SVG格式图片转成HTML中SVG的Path路径
  7. azure多功能成像好用吗_Azure持久功能简介:模式和最佳实践
  8. Debian服务器安装详细流程
  9. 前缀转后缀(表达式)
  10. 评:我从编程中悟出八个字(不算原创,不过希望让大家能看看)
  11. python以读写方式打开文件_python 文件读写with open模式r,r+,w,w+,a,a+的区别
  12. git rebase -i之我见
  13. poj3263 Tallest Cow 题解报告
  14. 计算机学院指导报告,重庆大学计算机学院论文指导讲座圆满结束
  15. win7纯净版64位系统下载
  16. 难得有一篇文章来仔细梳理cowboy bebop的种种.
  17. Materials Studio建模与材料模拟计算工作站方案2022
  18. c语言freeimage库文件,FreeImage使用方法amp;FreeImage Tutorial
  19. 一峰说:SpringCloud的基础了解和使用
  20. python you-get下载视频下载到哪里_python you-get下载哔哩哔哩视频

热门文章

  1. Matlab安装Arduino支持包出错,安装 Adafruit BNO055 Sensor Library失败
  2. 50个免费资源网站!斜杠青年必备的
  3. 计算机网络对等网规划设计实验报告,对等网的组建实验报告
  4. python plot label_python - matplotlib子图的通用xlabel / ylabel
  5. 唯众高职物联网应用技术专业解决方案
  6. haskell基本语法
  7. 简单的正方教务系统一键评教 js 代码
  8. Elliptic Labs与博世旗下的Grow平台签署许可协议
  9. Vue3中使用Tinymce富文本编辑器(版本最新)
  10. JAVA File.renameTo()方法使用