IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 链家网租房信息爬虫 -> 正文阅读

[Python知识库]链家网租房信息爬虫


前言

毕业将近,大部分学生出去实习或工作面临找租房的压力,此项目设计和实现了一个爬取链家网站租房信息的爬虫;该项目的功能:对爬取的网络资源进行分析,分析指定城市不同区域租房信息的并给出相关对比分析图。


一、网页分析

通过F12打开浏览器自带的抓包工具,点击查看源代码,然后就得到了网页源码中含有的第一套房的信息,通过对上图进行分析,可以通过正则表达式来获取到每个二手房详情页的url。

经过对比发现第一页每一套房的html格式都如上图类似,只有href不一样,那么我们就可以用正则表达式来提取。
代码如下:

re_f = '<a class="twoline" target="_blank" href="(.*?)"' 
url_list = re.findall(re_f, html)
url_list = ['https://cd.lianjia.com' + str(j) for j in url_list]

通过上面的正则表达式,我们可以拿到第一页所有房屋详情页的url
在这里插入图片描述

二、详情页分析

进入详情页后,方法类似,F12查看源代码,找到我们需要爬取的数据,观察它的标签结构和属性,在代码里就可以通过Xpath对网页源码就行解析,这样就能得到想要的数据了
在这里插入图片描述
部分代码如下:

title = html.xpath("//p[@class='content__title']")  #获取标题
location = html.xpath("//i[@class='gov_title']//a/text()" #获取位置
info = html.xpath("//li[@class='fl oneline']/text()") #获取相关信息
area=html.xpath("//ul[@class='content__aside__list']/li/text()")[1] #获取面积

到这里位置,我们就已经把第一页的所有房屋信息爬取到了并存储到了列表datalist中
如图所示:
在这里插入图片描述

三、不同页码的爬取

链家网站分区分页的url是由首页的的url+各区的拼音+pg页码构成的,通
过遍历各区和页码列表我们想要的网页的url。

在这里插入图片描述
首先把各个区域的基础url保存下来
代码如下:

baseurl = ["https://cd.lianjia.com/zufang/jinjiang/pg",
               "https://cd.lianjia.com/zufang/qingyang/pg",
               "https://cd.lianjia.com/zufang/wuhou/pg",
               "https://cd.lianjia.com/zufang/gaoxin7/pg",
               "https://cd.lianjia.com/zufang/chenghua/pg",
               "https://cd.lianjia.com/zufang/jinniu/pg"]

对于爬取不同网页可以通过for循环依次增加页数
代码如下:

for j in range(1, 35):
  url = baseurl + str(j) + "l0/#contentList"
  html = askURL(url)

四、多线程爬取数据

因为单线程爬取效率不高,时间花销大。考虑使用线程池爬取不同网页。
代码如下:

pool = threadpool.ThreadPool(30)            
    requests = threadpool.makeRequests(get_Info, url_list)
    [pool.putRequest(req) for req in requests]
    pool.wait()

总结

以上就是整个项目我负责的所有内容,本文仅仅简单介绍了爬虫的基础应用,因为是第一次写,代码会有一点冗余。在这次项目的编写中,最大的收获就是发现了自己能力的不足。在今后的学习生活中,一定做到不懂就问,提高自主学习的能力和锻炼自己的动手能力。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:46:09  更:2021-12-08 13:46:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:57:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码