社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

手把手用Python网络爬虫带你爬取全国著名高校附近酒店评论

Python绿色通道 • 4 年前 • 492 次点击  

↑ 关注 + 星标 ,每天学Python新技能

后台回复【 大礼包】送你Python自学大礼包


大家好,我是龙哥!

/1 前言/

  简介:本文介绍如何用python爬取全国著名高校附近的酒店点评,并进行分析,带大家看看著名高校附近的酒店怎么样。


/2 具体实现/

  具体的实现主要是分为三步,具体的操作过程如下。

一、抓取高校附近的酒店信息

  由于电脑客户端的美团酒店没有评论信息,于是我从手机端的网页入手,网页地址为:https://i.meituan.com/awp/h5/hotel/search/search.html

  通过搜索北京大学附近的酒店,抓包找到了返回酒店json信息的url。

  其中,limit代表返回酒店的最大数量(经测试,limit最大为50),offset为每次返回酒店数量的起点,cityId为城市的标志,在网页信息中可以找到,时间参数可以修改,sort为返回酒店信息的排序,sort=distance代表按距离搜索,q和keyword都是大学名称。

  返回的数据如下图所示:

    包含酒店的名字、地理位置、评分、realPoiId(相当于酒店的身份证号,后面爬评论用的到)、酒店和大学的距离等信息。

    下面我们开始爬排名前10高校附近的酒店信息(不要在乎大学排名,我乱找的,以学习为主):

(图片来源于网络)

  部分代码如下图所示:

  其中cityId和大学名字为控制变量,通过返回的距离信息将酒店位置控制在2000米以内,输出结果为:

  看看这10所大学2000米附近附近有多少家酒店:

  我们可以发现,南京大学附近酒店最多,有453家;上海交通大学闵行校区附近酒店最少,有75家。


二、抓取每家酒店的点评信息

  这个从这个url可以返回每家酒店的评论数量,poiId是酒店的“身份证号”。

  这个url可以返回酒店的所有评论信息,其中limit为返回的评论数量,可以直接用上个url返回的评论数量,一次全部以json格式返回,非常方便,返回结果如下:


三、遇到的坑

  1.刚开始爬评论是1次返回15个,后来发现可以Limit可以为评论的最大值,但是第一步返回的酒店信息中包含酒店评论数量是不准确的,要用第二步的方法;

  2.评论中乱七八糟的表情、符号也是大坑,去了好久也去不干净;

  3.最好用代理IP地址爬,否则评论太多,会被封。


/3 结语/

  本文基于Python网络爬虫,抓取了高校旁边的酒店数量及其评论数量,如果你想抓取其他地方的其他信息,也是可行的,可以纵向拓展。

------------------- End -------------------






    
推荐阅读

  1. 稳了!35K!字节商业数据分析岗!

  2. 快收藏!!整理了100个Python小技巧!!

  3. 搞到了!《网易数据分析指南》免费领!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125923