Python爬取链家租房信息

兴趣点:

继续练手,今天以石家庄市开发区为例,爬取所有链家在租房屋信息
这种静态网页我已经练了很多了,已经驾轻就熟了

目标网站:

传送门:https://sjz.lianjia.com/zufang/kaifaqu1/

爬虫大体思路与方法:

大体思路:

(1)找到翻页的规律(链家是静态网页,直接看浏览器上方显示的链接就能找到规律)
(2)获取我们想要的出租房的信息包括房源、面积、具体地址等,整理到列表中
(3)存储到本地

方法:

(1)getHTMLText(url):页面获取方法
(2)fillList(url,roomlist):把出租房的各种信息存入列表
(3)save(roomlist,path):读取列表内容存入本地txt文件

参数介绍:

(1)roomlist:存放出租房各种信息的列表
(2)path:本地存储路径

部分细节讲解:

(1)获取house_name的写法:
为什么不直接用 find 方法找a标签?如下:

house_name = house.find("a",class_ = "twoline").get_text().strip()

这样写获取不到内容,这个问题我也不清楚,也不是第一次遇到了,可能是a标签的特性

所以改成了下面这样:

house_name = house.find("p",class_ = "content__list--item--title").find("a").get_text().strip()

(2)为了使获取的内容更整齐,再次强调一下去空格:
str.strip():去除字符串两端的空格
str.replace(“旧字符”,“新字符”):把旧字符替换成新字符,用于替换内部的空格、制表符和换行符

(3)有个别出租房没有提供部分信息可能导致爬虫中断:
在循环外套一个try——except抛出即可

try:for house in soup.find_all("div",class_ = "content__list--item"):............
except:         print("部分信息缺失,爬取失败*************************")

完整代码:

import requests
import re
import os
from bs4 import BeautifulSoupdef getHTMLText(url):try:kv = {"user-agent":"Mozilla/5.0"}r = requests.get(url,headers = kv)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:print("getHTMLText失败!")return ""def fillList(url,roomlist):for i in range(1,55):page_url = url + "pg{}".format(i)html = getHTMLText(page_url)soup = BeautifulSoup(html,"html.parser")try:for house in soup.find_all("div",class_ = "content__list--item"):house_name = house.find("p",class_ = "content__list--item--title").find("a").get_text().strip()house_price = house.find("span",class_ = "content__list--item-price").get_text().strip()des = house.find("p",class_ = "content__list--item--des").get_text()deslist = des.split("/")house_address = deslist[0].strip()house_area = deslist[1].strip()house_towards = deslist[2].strip()house_roomtype = deslist[3].strip()house_floor = deslist[4].strip().replace(" ","").replace("\t","")house_tips = house.find("p",class_ = "content__list--item--bottom oneline").get_text().strip().replace("\n","").replace("\t","")roomlist.append([house_name, house_price, house_address, house_area, house_towards, house_roomtype, house_floor, house_tips])print(house_address + "爬取成功!")except:print("部分信息缺失,爬取失败*************************")def save(roomlist,path):with open (path,'a',encoding = 'utf-8') as f:f.write("房源"+"\t"+"价格"+"\t"+"具体地址"+"\t"+"面积"+"\t"+"朝向"+"\t"+"房型"+"\t"+"层数"+"\t"+"其他优势"+"\n")for room in roomlist:f.write(room[0] + "\t" +room[1] + "\t" +room[2] + "\t" +room[3] + "\t" +room[4] + "\t" +room[5] + "\t" +room[6] + "\t" +room[7] + "\n")print(room[2] + "存储成功!")f.close()def main():url = "https://sjz.lianjia.com/zufang/kaifaqu1/"roomlist = []path = "石家庄开发区租房信息.txt"fillList(url,roomlist)save(roomlist,path)main()

爬取结果展示:

直接写入Excel未免太过麻烦,我习惯了写到txt再转到Excel的方法了(☄⊙ω⊙)☄
至于怎么用Excel按制表符分列大家应该都会吧?不会有人不会吧?不会吧?不会吧?哈哈

Python爬取链家租房信息相关推荐

  1. python爬取链家租房信息_Python爬取链家网上海市租房信息

    使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取. import requests from bs4 import Beauti ...

  2. python爬取链家租房信息_python爬取链家租房之获取房屋的链接和页面的详细信息...

    因为期末考试的缘故,本打算一个星期结束的爬虫,拖了很久,不过,也有好处:之前写的时候总是被反爬,这几天复习之余写了些反爬取的py code 下面发出来和大家探讨 做了些反爬取的手段 随机获取一个hea ...

  3. python关于二手房的课程论文_基于python爬取链家二手房信息代码示例

    基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...

  4. python爬虫--爬取链家租房信息

    python 爬虫-链家租房信息 爬虫,其实就是爬取web页面上的信息. 链家租房信息页面如下: https://gz.lianjia.com/zufang/ ## python库 Python库 1 ...

  5. 链家网开源java_异步协程爬取链家租房信息

    异步协程抓取链家数据+pandas写入csv import asyncio import aiohttp import pandas from bs4 import BeautifulSoup fro ...

  6. 50 行代码爬取链家租房信息

    最近自己开始学习数据分析的技术,但数据分析最重要的就是数据.没有数据怎么办?那就自己爬一些数据.大家一定要记得爬虫只是获取数据的一种手段,但如果不用一系列科学的方式去分析这些数据,那么爬去下来的数据是 ...

  7. python爬取链家二手房信息

    爬取过程分析: 1.链家网url:https://bj.lianjia.com/ershoufang/pg2/ 显示的二手房信息每个url递增一 2.访问时要加头信息,否则无法访问 3.用beauti ...

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

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

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

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

  10. python爬虫requests源码链家_python爬虫——爬取链家房价信息(未完待续)

    爬取链家房价信息(未完待续) items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # ...

最新文章

  1. 教你清楚了解JAVA动态代理
  2. L2-001 紧急救援-团体程序设计天梯赛GPLT
  3. php同时抢购 代码,浅谈PHP实现大流量下抢购方案
  4. java map 赋值_java Listmap赋值的问题
  5. matlab 函数pdf怎么用_pdf加水印怎么加?这个实用pdf编辑工具可以用
  6. focal loss dice loss源码_0815——W2V的TF源码阅读
  7. 项目部署到服务器后字符编码,将UTF-8编码的数据发布到服务器会丢失某些字符...
  8. python对于一元线性回归模型_Python|机器学习-一元线性回归
  9. 【Java后台开发规范】--- Null值处理
  10. 联想本win10 virtualbox 安装centos
  11. C语言的程序设计流程、特点及要求
  12. 周杰伦专辑《最伟大的作品》在哪看?当贝盒子畅享周董最新MV
  13. html基本词汇app,背单词APP哪个最好 可以自定义单词卡片的英语学习APP推荐
  14. [Python从零到壹] 四十四.图像增强及运算篇之图像灰度线性变换详解
  15. paly 框架Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
  16. 真实骑手数据:73万大学毕业生在送外卖
  17. 宜家订单JSON_怎么评价宜家(IKEA)?
  18. BPM流程建模开发详解
  19. VS +QT 手动添加Q_OBJECT 报错问题解决
  20. K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点

热门文章

  1. MySQL入门笔记整理
  2. 1312E Array Shrinking
  3. 【服务器数据恢复】IBM服务器RAID控制器出错的数据恢复案例
  4. Bro脚本语法4-声明和语句(Declarations and Statements)
  5. 没有利空的股票,为什么有时会突然跌停?
  6. 两张图片放在一起有条白线_为什么图片上加两条白线就可以有3d效果?
  7. matplotlib plot函数使用详解
  8. u盘不能格式化怎么办
  9. 关于计算机软件的使用 正确的认识应该是,计算机二级考试单选题训练题库
  10. Android anr模拟,ANR 的模拟