iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何爬取华为应用市场评论
  • 240
分享到

python如何爬取华为应用市场评论

2023-06-15 07:06:38 240人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下python如何爬取华为应用市场评论,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码分享分别爬取的一些应用信息以及应用的评论信息,数据结构如下

小编给大家分享一下python如何爬取华为应用市场评论,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

代码分享

分别爬取的一些应用信息以及应用的评论信息,数据结构如下:

python如何爬取华为应用市场评论

python如何爬取华为应用市场评论

一、安装并创建scrapy项目

Scrapy官方文档:https://docs.scrapy.org/en/latest/intro/install.html

Scrapy是一个比较好用的python爬虫框架,官方文档写得也比较详细。可以直接运行以下命令安装:

pip install Scrapy

安装完毕后,需要创建Scrapy项目,相当于是一个爬虫项目框架,在想要放置项目的地方打开命令行并输入以下命令会自动创建一个名为[project_name]的文件夹,比如我这里的[project_name]是appstore,文件夹中会自动生成的一些文件。

scrapy startproject appstore
  • appstore/scrapy.cfg中包含了用于启动爬虫的一些基础配置,一般不用管它。

  • appstore/appstore/items.py:定义了爬取到的数据格式类,在这里面创建类来存放爬取到的数据的item格式。

  • appstore/appstore/middlewares.py:定义了爬虫中间键的一些行为,我一般也不会去动它。

  • appstore/appstore/pipelines.py:定义了爬取到item后对其进行的处理。

  • appstore/appstore/settings.py:是爬虫配置文件。

  • appstore/appstore/spiders/:这个目录下存放的是爬虫,也就是向网页发送请求并受到应答然后进行数据处理的过程。

二、爬取应用市场评论过程

爬取网页信息有两个常用的方法:

  • 直接通过xpath解析html文件

  • 依据特定格式构造请求获取JSON数据进行解析

显然前者更简单方便一些,但是现在许多网页都是动态的,所以后者泛用性更强一些,这里我爬取华为应用市场上所有应用的评论信息主要使用的是后面一种方法。

1. Scrapy爬虫运行流程

首先需要大致了解Scrapy的爬虫是如何运作的,分为以下几个步骤:

  • Step1: 在项目的spiders文件夹中新建一个.py文件,比如huawei.py,一般来说每一个文件代表一个爬虫,也就是对某一个网页的爬取策略。

  • Step2: 创建一个类继承自scrapy.Spider,类中至少需要有name、allowed_domain、start_urls变量以及一个函数parse(self)。其中name是此爬虫的唯一标识,之后启动时通过指定name来判断启动哪个爬虫(因为spiders文件夹中可能包含多个爬虫文件);allowed_domain用来指定当前爬虫可以访问的主域名;start_urls用来指定首先获取的页面,而此获取结果将会交由parse函数进行处理。每个爬虫中的处理函数可能有很多个,命名格式一般是parse_xxx之类的,用来处理多级页面,比如parse处理完主页面之后构造新的请求获取二级页面信息并通过parse_second进行处理,但不管怎么样都会包含一个parse函数。

import scrapyclass HuaWei(scrapy.Spider):    name = "huawei"    allowed_domains = ['appstore.huawei.com', 'WEB-drcn.hispace.dbankcloud.cn']    start_urls = [        'Https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTemplate&serviceType=20&zone=&locale=zh']    def parse(self, response):    pass
  • step3: 爬虫编写好之后,在项目根目录(也就是scrapy.cfg文件的同级目录)打开命令行,并输入以下命令启动爬虫:

scrapy crawl hauwei

2. 页面分析

首先,通过浏览器访问应用市场,分析一下想要爬取网页的基本信息,这里我想要爬取应用市场中所有应用的评论,所以首先需要进入到所有应用的详细界面,然后在详细界面中展开评论进行爬取,基本的思路是:对每一个分类–>对每一个子分类–>展开每一个应用–>获取应用全部评论。

python如何爬取华为应用市场评论

python如何爬取华为应用市场评论

python如何爬取华为应用市场评论

爬取的初始页面是https://appgallery.huawei.com/#/Apps,浏览器中使用F12启动开发者模式,调试网页前端代码,我们希望的是能够找到页面排版的某些规律。

页面分析过程一

我们发现不管在应用分类的选项卡中选择哪一个分类或是子分类,url都不会变。也就是说,选择分类后显示对应的应用列表这一功能是动态实现的,我们没办法通过抓取html中的信息来获取不同分类的应用列表,那么我们只能通过自己构造请求获取json数据的方式爬取信息。
首先,打开调试窗口中的Network选项卡来分析获取不同分类应用列表时的网络数据包:

python如何爬取华为应用市场评论

除了第一个数据包以外,后面的都是获取应用图标数据,也就是说第一个数据包里面就包含了应用的其他数据,查看此数据包中的request_url为:

https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&uri=8e62cf6d238c4abdb892b400ff072f43&maxResults=25&zone=&locale=zh

我们直接在浏览器中访问此url,可以得到一个json文件,分析后发现此json文件中包含了列表中应用的信息。点击不同的分类、子分类,获取不同的request_url,我们发现,每一个子分类的request_url都只有uri字段不一样,且默认情况都只显示第1页的25个应用。也就是说我们以此request_url为模板,修改uri字段实现获取不同类别应用列表,修改reqPageNum字段获取列表中的多页应用。

页面分析过程二

手动点进每一个应用的详细界面时,我们发现,不同应用的详细界面的url只有最后的定位有不同,比如腾讯视频与优酷视频这两个应用详细界面的url分别是:

python如何爬取华为应用市场评论

多观察几个应用就会发现最后的那一串代码应该是类似于应用唯一标识符一样的东西。而在上一步中,我们可以发现在获取的每个应用信息中包含能够找到这些标识符(‘appid'键的值),于是我在这里尝试直接以这种格式构造url请求获取页面,但是失败了,猜测可能是页面重定向的问题,没办法,只能按部就班地通过其它方式继续分析。
通过F12查看页面排版,每一个app卡片中虽然有app名称以及一些其他信息,但是找不到app详细页面的链接,因为获取应用详细信息功能被写成了使用js动态获取的,因此我们没办法直接从html界面中获取,所以依旧采用构造request_url的方法获取json数据。

python如何爬取华为应用市场评论

与分析过程一类似,我们可以获取以下的request_url:

https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app%7CC174391&shareTo=&currentUrl=https%253A%252F%252Fappgallery.huawei.com%252F%2523%252Fapp%252FC174391&accessId=&appid=C174391&zone=&locale=zh

通过此request_url获取的json中包含了应用的详细信息,实际上通过测试,其中的reqPageNum、maxResults、shareTo、currentUrl、accessId、appid、zone、locale字段都是不需要的,而又发现uri字段中后面的“C174391”是当前应用的appid,也就是说我们只需要修改uri字段的“app%7C”后面的字符串为不同应用的appid(可以在分析过程一中的json文件里获取),就可以获取不同应用的详细信息。

页面分析过程三

有了上面两次分析的经验,我们继续来爬取每个应用的评论数据,发现这些数据也是通过js动态获取的,于是继续分析request_url,格式如下:

https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.user.commenList3&serviceType=20&reqPageNum=1&maxResults=25&appid=C2002&version=10.0.0&zone=&locale=zh

与之前类似,我们可以通过修改appid字段爬取不同应用的评论,通过修改reqPageNum字段爬取多页评论。

3. 爬虫实现

整个爬取过程就是:构造request_url请求获取json数据–>解析json数据–>构造新的request_url获取json数据–>…
下面是爬虫中的一个处理函数,功能是处理每一个应用的详细信息并构造获取评论的request_url发送新的请求,接下来依次说明其中的关键部分。

def app_parse(self, response):    """    解析应用,获取应用名称、描述、资费、版本、开发者,然后转至appcomment_parse进行处理    :param resonse:    :return:    """    appid = response.meta['appid']    app_json = json.loads(response.text)    Name = app_json.get('layoutData')[0].get('dataList')[0].get('name')    Star = app_json.get('layoutData')[0].get('dataList')[0].get('intro')    Downloads = app_json.get('layoutData')[0].get('dataList')[0].get('stars')    Price = app_json.get('layoutData')[3].get('dataList')[0].get('tariffDesc')    Version = app_json.get('layoutData')[3].get('dataList')[0].get('version')    Developer = app_json.get('layoutData')[3].get('dataList')[0].get('developer')    Description = app_json.get('layoutData')[7].get('dataList')[0].get('appIntro').replace('\n', '')    AppData = AppItem(        AppId=appid,        AppName=Name,        AppDesc=Description,        AppPrice=Price,        AppVersion=Version,        AppDeveloper=Developer,        AppStar=Star,        AppDownloads=Downloads    )    yield AppData    for pagenum in range(1, 20):        request_url = "https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.user.commenList3&serviceType=20&reqPageNum={}&maxResults=25&appid={}&version=10.0.0&zone=&locale=zh".fORMat(            pagenum, appid)        yield scrapy.Request(url=request_url, callback=self.appcomment_parse, meta={'appid': appid})
解析json并构造请求

第8行中通过json.loads将响应解析为json格式,并在后续使用键值与index访问里面的信息。

将数据保存在items中

在items.py文件中定义好Item类之后,可以在此新建一个Item对象,并在填入相应的值,将此item返回交由pipeline.py进行处理。

# items.pyclass AppItem(scrapy.Item):    AppId = scrapy.Field()    AppName = scrapy.Field()    AppDesc = scrapy.Field()    AppPrice = scrapy.Field()    AppVersion = scrapy.Field()    AppDeveloper = scrapy.Field()    AppStar = scrapy.Field()    AppDownloads = scrapy.Field()

yield是Python中的一个关键词,与return类似,会让函数返回此关键词修饰的表达式值,与return不同的是,yield在返回一个值后会继续执行后面的代码,而return不会。

构造新的请求

在最后一行中针对所有评论列表构造新的request_url以获取评论信息,并通过scrapy.Request发送请求,其中callback指定用于处理此请求响应的处理函数,而meta中包含了想要传递给callback函数的信息。

item数据的处理

在爬取数据的过程中,处理函数会实时将不同的item返回并交由pipeline进行处理,此时需要在pipeline.py中指定如何处理这些item,比如在此我把数据全都记录入csv表格中。pipeline类中必须定义process_item函数来处理每一个item,而__init__与close_spider都是可选的。

class AppStorePipeline:    def __init__(self):        self.app_list = []        self.comment_list = []    def process_item(self, item, spider):# 接收到item时调用的函数        if isinstance(item, AppItem):            self.app_list.append(dict(item))        elif isinstance(item, CommentItem):            self.comment_list.append(dict(item))        return item    def close_spider(self, spider):# 当爬虫关闭时调用的函数        df_app = pd.DataFrame(self.app_list)        df_comment = pd.DataFrame(self.comment_list)        df_app.to_csv('app_info.csv')        df_comment.to_csv('comment_info.csv')

以上是“python如何爬取华为应用市场评论”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: python如何爬取华为应用市场评论

本文链接: https://www.lsjlt.com/news/278528.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何爬取华为应用市场评论
    小编给大家分享一下python如何爬取华为应用市场评论,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码分享分别爬取的一些应用信息以及应用的评论信息,数据结构如下...
    99+
    2023-06-15
  • 如何用Python爬取各Android市场应用下载量
    如何用Python爬取各Android市场应用下载量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。文章目录前言设计一个函数构造要爬取的网址确定要爬取的内容的位置构建输入和调...
    99+
    2023-06-17
  • python如何爬取都挺好影视评论
    本篇文章给大家分享的是有关python如何爬取都挺好影视评论,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言最近《都挺好》大火,被誉为“最成功国产家庭伦理剧”,可能大家也有共...
    99+
    2023-06-02
  • python如何爬取京东指定商品评论
    这篇文章给大家分享的是有关python如何爬取京东指定商品评论的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。爬取京东商城中指定商品下的用户评论,对数据预处理后基于SnowNLP的sentiment模块对文本进行情...
    99+
    2023-06-15
  • 使用python怎么爬取微博评论
    今天就跟大家聊聊有关使用python怎么爬取微博评论,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端...
    99+
    2023-06-14
  • 【Python】使用Python做简易爬虫爬取B站评论
    目录 一、前言 二、分析网页 三、代码 1.头 2.获取根评论 3.获取子评论 四、总代码 五、总结 一、前言         B站评论没有查找功能,就随手写了一个爬虫爬取B站评论存储到本地txt中         首先需要安装pyth...
    99+
    2023-08-31
    python 爬虫 开发语言
  • 怎样用Python爬取淘宝评论数据
    今天就跟大家聊聊有关怎样用Python爬取淘宝评论数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。【项目准备工作】 准备Pycharm,下载安装等,不会安装的,可以回复:pytho...
    99+
    2023-06-01
  • 怎样让用python爬取龙岭迷窟评论
    本篇文章给大家分享的是有关怎样让用python爬取龙岭迷窟评论,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近不知道大家发现没有,新出了几部国产好剧,其中小五比较喜欢的就是鬼...
    99+
    2023-06-02
  • 利用Python网络爬虫爬取各大音乐评论的代码
    目录 python爬虫--爬取网易云音乐评论1.简易看出评论是动态加载的,一定是ajax方式。3.去查看post请求所上传的数据4.首先去查看请求是经过那些js到达服务器的...
    99+
    2024-04-02
  • 如何通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据
    如何通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在学习python的时候,...
    99+
    2024-04-02
  • 如何用Python网络爬虫抓取百度贴吧评论区图片和视频
    如何用Python网络爬虫抓取百度贴吧评论区图片和视频,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片...
    99+
    2023-06-01
  • Python如何实现抖音评论数据抓取
    小编给大家分享一下Python如何实现抖音评论数据抓取,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 抓取数据抖音出了 web 版,抓取数据方便了很多。抓评论滑到网页评论区,在浏览器网络请求里过滤包含comment的请...
    99+
    2023-06-28
  • 详解用python实现爬取CSDN热门评论URL并存入redis
    一、配置webdriver 下载谷歌浏览器驱动,并配置好 import time import random from PIL import Image from seleniu...
    99+
    2024-04-02
  • 华为应用市场:如何打通开发者通往用户的“最后一公里”?
    这篇文章主要介绍“华为应用市场:如何打通开发者通往用户的“最后一公里”?”,在日常操作中,相信很多人在华为应用市场:如何打通开发者通往用户的“最后一公里”?问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • 怎么使用Python爬取网易云歌曲评论实现词云图
    这篇文章主要讲解了“怎么使用Python爬取网易云歌曲评论实现词云图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python爬取网易云歌曲评论实现词云图”吧!环境使用Python ...
    99+
    2023-06-30
  • 【Python】爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据
    目录 前言 一、配置环境 1.1、 安装Python 1.2、 安装Requests库和BeautifulSoup库 1.3.、安装Matplotlib 二、登录豆瓣网(重点) 2.1、获取代理 2.2、测试代理ip是否可用 2.3、设置...
    99+
    2023-10-25
    windows python 开发语言 爬虫
  • 详解如何用Python登录豆瓣并爬取影评
    目录一、需求背景二、功能描述三、技术方案四、登录豆瓣1.分析豆瓣登录接口2.代码实现登录豆瓣3.保存会话状态4.这个Session对象是我们常说的session吗?五、爬取影评1.分...
    99+
    2024-04-02
  • 怎么利用Python带领你爬取流浪地球评论并写入数据库
    这期内容当中小编将会给大家带来有关怎么利用Python带领你爬取流浪地球评论并写入数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言要春节档最热门的电影,就数今年的《新喜剧之王》《流浪地球》、《疯狂...
    99+
    2023-06-02
  • Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
    目录一、分析链接二、切分提取tid三、随机提取评论的内容四、盖楼刷抽奖一、分析链接 上一篇文章指路 一般来说,我们参加某个网站的盖楼抽奖活动,并不是仅仅只参加一个,而是多个盖楼活动一...
    99+
    2024-04-02
  • 用Python爬取暑期档大火的《哪吒》,20W+评论数据,我们分析一波
    说起这个暑期档的动画片,非《哪吒之魔童降世》莫属了!上映第 1 天:89分钟,中国动画最快破 1亿纪录上映第 2 天:中国影史首部单日票房破 2亿的动画电影上映第 4 天:中国影史第66部破 10亿影片上映第 8 天:正式登顶!破 16亿,...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作