`
安卓干货铺
  • 浏览: 36201 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Python爬虫实战(1)-爬取“房天下”租房信息(超详细)

阅读更多

前言

先看爬到的信息:

 

上篇文章已经讲了Python安装第三方库,今天主要用到了两个库:RequestsBeautifulSoup。所以我先简单的说一下这两个库的用法,提到的都是此文需要用到的。

 

Requests

requests是一个很实用的Python HTTP客户端库。

下面通过一个例子来了解一下:

网址就用房天下的天津整租租房信息“http://zu.tj.fang.com/house/n31/”

import  requests
#请求头
headers = {
          'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
          }
#Get请求-并传递headers
data=requests.get("http://zu.tj.fang.com/house/n31/",headers=headers)

print(data.text)

如果正常的话打印出来的就是如下,这里只截取一部分:

 

requests请求也会出现异常,这里我就先不细说了,可以去此网址查下具体用法:

http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

另外上面的代码中的headers是如何来的呢?这里给大家讲一下:

请求头的添加方法:

1.打开你要爬取的网址,在空白处右键-->检查,然后点击Network

 

 

BeautifulSoup

Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。

安装Beautiful Soup时注意一个问题, 我的python是3.6版本,安装的是bs4

 

import  requests
import  bs4
#请求头
headers = {
          'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
          }
#Get请求-并传递headers
data=requests.get("http://zu.tj.fang.com/house/n31/",headers=headers)
soup=bs4.BeautifulSoup(data.text,"html.parser")
print(soup.prettify())

输出的是soup文档,结果如下(截取了一部分):

这里主要讲一下Beautiful Soup中的select()方法, 通过某个属性查找,而属性可以在网页中复制到。

具体的可以直接此网址学:

http://beautifulsoup.readthedocs.io/zh_CN/latest/

复制的步骤:

1.选中你要了解的内容,右键-->检查,比如我对价格进行了“检查”:

 

2.选择copy selector

3.复制的放到select方法内,代码如下:

 

headers = {
          'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
          }

data=requests.get("http://zu.tj.fang.com/house/n31/",headers=headers)
soup=bs4.BeautifulSoup(data.text,"html.parser")

concretedata=soup.select("#listBox > div.houseList > dl:nth-of-type(1) > dd > div.moreInfo > p > span")

for houseinformat in  concretedata:
   print(houseinformat.get_text())

输出的肯定是我们选中的价格

注意的是复制的内容里有dl:nth-child(1),直接改成dl:nth-of-type(1)要不会报错的。另外里面的get_text()方法表示直接获取了文字信息,不然会和标签一起显示的。

强调:如果要想获取此列表的所有价格的话,直接观察一下会发现,去掉nth-of-type(1)就可以了,大家应该都明白的。也就是把select方法中的内容改为:

 

然后运行输出(只截取了一部分):

实战

根据上面的爬取方式,我们可以把当前网页“房天下天津整租租房信息”中的房屋标题,具体内容与价格爬取下来。

1.爬取标题

爬取标题我们再copy时发现用select方法不是和恰当了,这里应该能看出来吧?看不出来的可以自己去试一试,这里我们查看爬取下来SOUP文档,发现标题是在P标签下的"title"字段

所以我们可以直接用Beautiful Soup中的find_all()方法

#标题
title=soup.find_all("p","title")

 

2.爬取价格

这就不用多少了,上面讲过

#价格
price=soup.select("#listBox > div.houseList > dl > dd > div.moreInfo > p > span")

 

3.爬取具体内容

 

#具体的内容
concretedata=soup.select("#listBox > div.houseList > dl > dd > div.moreInfo > p > span")

 

整体代码如下:

# -*- coding: gbk -*-
import  requests
import  bs4

def get_lastdata():
   headers = {
       'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
   }

   data = requests.get("http://zu.tj.fang.com/house/n31/", headers=headers)
   #因为打印出来的格式有乱码,所以更改一下编码
   data.encoding="gbk"
   soup = bs4.BeautifulSoup(data.text, "html.parser")
   # 标题
   title = soup.find_all("p""title")
   # 价格
   price = soup.select("#listBox > div.houseList > dl > dd > div.moreInfo > p > span")
   # 具体的内容
   concretedata = soup.select("#listBox > div.houseList > dl > dd > p.font16.mt20.bold")

   for title,price,concretedata in zip(title,price,concretedata):
       last_data={
           "title":title.get_text().strip(),
           "concretedata":concretedata.get_text().strip(),
           "price":price.get_text().strip()
       }

       print(   last_data)

if __name__ == '__main__':
   get_lastdata()

运行结果:

希望对刚入门的朋友有所帮助!

我的微信:lengquele5311

分享到:
评论

相关推荐

    python爬取链家网租房数据

    链家网是中国知名的房产服务平台,提供了丰富的房源信息,包括租房、二手房买卖等。通过Python爬虫,我们可以获取这些实时的房源数据,如租金、面积、地理位置等,这对于研究市场动态、对比房源价格或者个人寻找合适...

    安居客出租房(武汉为例)爬虫+数据分析+可视化

    首先声明该爬虫由于是特定情况下写的,所以本身的通用性特别差,仅可以对安居客网站上的武汉的出租房信息进行爬取,且需要自己手动更新cookie。同时在对数据进行分析及可视化的时候由于也是特别针对武汉出租房的进行...

    Python爬虫项目之爬取一线城市链家租房房源信息.zip

    这个项目涵盖了Python爬虫的基础知识和实战技巧,对于想要了解网络数据采集的初学者或者希望提升爬虫技能的开发者都非常有帮助。 首先,我们需要了解Python爬虫的基本构成。Python作为一种强大的编程语言,拥有丰富...

    数据分析实战项目--链家租房数据可视化分析.pdf

    在这个数据分析实战项目中,作者利用Python进行链家租房数据的抓取、清洗和可视化分析。以下是对关键知识点的详细说明: 1. **Python环境与工具**:该项目使用PyCharm 2020.1.5作为开发环境,Python作为编程语言。...

    Python爬虫数据可视化分析大作业.zip

    Python爬虫数据可视化分析大作业是一个综合性的Python实战项目,旨在教授如何利用Python进行网络爬虫,对抓取的数据进行处理、分析,并通过可视化手段展示结果。该项目涵盖了多个关键的知识点,包括Python基础、网络...

    Python爬虫学习路线1

    接下来,【爬取豆瓣电影信息】是爬虫实战的第一步。这通常涉及到使用requests库来发送HTTP请求,获取网页HTML内容。然后用BeautifulSoup或lxml等解析库解析HTML,提取所需数据。例如,你可以通过分析豆瓣电影页面的...

    python爬虫 爬取58同城上所有城市的租房信息详解

    代码如下 from fake_useragent import UserAgent from lxml import etree import requests, os import time, re, datetime import base64, json, pymysql from fontTools.ttLib import TTFont ...

    高德API + Python 解决租房问题_实验楼

    1. 数据抓取脚本(如rent_house_spider.py):负责爬取租房网站数据。 2. 数据处理脚本(如process_data.py):对抓取的数据进行清洗和整理,可能包括去除重复项、格式化等。 3. 显示地图和路径规划脚本(如map_...

    爬虫应用_爬虫_应用_中数爬取_

    再者,“【项目3】python租房爬虫实战”涉及房地产市场的信息获取。租房信息通常分布在各大房产网站上,爬虫可以收集房屋的地理位置、租金、面积、装修情况等关键数据,帮助研究市场趋势或为用户提供便捷的找房服务...

    Python实战:四周实现爬虫系统目录.zip

    12 爬取租房信息 13 如何获取网页中的动态数据 14 爬取霉霉图片 15 爬取一页商品数据 16 第一周实战作业讲解 17 第一周补充资料 3 第二周:学会爬取大规模数据 18 第二周课前准备 19 开始使用数据库 MongoDB 20 在 ...

    python基于flask+vue的爬虫可视化网易严选商品评论系统源码.zip

    该压缩包文件“python基于flask+vue的爬虫可视化网易严选商品评论系统源码.zip”提供了一个完整的Python爬虫项目,它结合了Flask框架和Vue.js前端技术,用于实现对网易严选商品评论的抓取和可视化展示。这个系统能够...

    爬虫数据提取.pdf

    **案例二:爬取赶集网租房信息** - **步骤1**:获取目标页面。 - **步骤2**:使用XPath解析出房源信息。 - **步骤3**:存储或展示结果。 #### 八、总结 网络爬虫是获取互联网数据的强大工具之一,掌握正则表达式、...

    租房网站信息分析项目(Vue+Django+Scrapy).zip

    Scrapy是一个强大的Python爬虫框架,用于抓取网页并提取结构化数据。在这个项目中,Scrapy可能被用来从租房网站抓取房源信息,如价格、位置、面积等。Scrapy提供了丰富的中间件和扩展,可以处理反爬策略,如设置User...

    使用正则表达式爬取赶集网.py

    正则表达式抓取赶集网租房信息源码示例,以赶集网郑州租房信息为例,抓取了第一页的内容,抓取多页和保存只需要稍加修改即可.代码注释中有正则表达式使用过程中需要注意的一些问题,希望能给大家些许帮助

    房屋刮板

    【房屋刮板】是一个使用Python编程语言开发的项目,其主要功能是针对房屋信息进行网络爬虫,收集并整理各类房源数据。...这个项目可以作为学习Python爬虫和数据处理的实战案例,有助于提升相关技能。

Global site tag (gtag.js) - Google Analytics