目录

一、需求说明

二、步骤

1、检查当前页面的URL所获得的响应的数据

①笨办法——程序验证(不建议)

②简单办法——抓包

③验证(抓包,推荐)

④动态加载验证

⑤查找页面的信息

2、获取排行页面数据

①操作  ​

②源码

③信息解析

3、详情页面分析

①寻找URL

②验证URL

③获取URL

④获取内容

三、源码


一、需求说明

爬取华为应用市场排行页面下的APP的详情页

二、步骤

1、检查当前页面的URL所获得的响应的数据

①笨办法——程序验证(不建议)

将URL复制到python环境中,通过requests的四步去得到其相应的内容

②简单办法——抓包

通过检查页面找到当前页的相应内容,然后检查里面的内容是否是想要的

先在页面点鼠标右键,然后选项的最下面就是检查了,然后进行如下操作

③验证(抓包,推荐)

根据结果显示,通过URL得到的内容不是页面所呈现的内容,做出可能是ajax的动态加载

④动态加载验证

⑤查找页面的信息

通过上一步的验证发现,其得到的内容并不是页面的内容,所以加下来要继续查找;

查找方向为全部的响应信息

2、获取排行页面数据

①操作  

②源码

import requests
import json
if __name__ == '__main__':url = 'https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&uri=1ca1964fe0c343cbab12f94d6dc5ef7e&maxResults=25&zone=&locale=zh'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'}'''https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app|C5683&shareTo=&currentUrl=https%3A%2F%2Fappstore.huawei.com%2Fapp%2FC5683&accessId=&appid=C5683&zone=&locale=zhhttps://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app|C10652857&shareTo=&currentUrl=https%3A%2F%2Fappstore.huawei.com%2Fapp%2FC10652857&accessId=&appid=C10652857&zone=&locale=zh'''id_list = []response = requests.get(url=url,headers=headers).json()print(response)

③信息解析

3、详情页面分析

①寻找URL

重复上面的步骤去检查详情页的情况,找到所需要的数据,然后通过对比URL寻找规律,发现有一个编码是不一样的,而此编码保存在上一个页面的获取到的信息中(可以通过将获取到的数据保存到json文件中,然后通过快捷键去查找)

②验证URL

观察URL发现得到的区别是处在一大串的字符串中,也就是说无法将其分化出来;此时要进行的一个操作就是将区别后面的一长串字符串进行删除之后,然后将其拿到浏览器去验证跟删除前得到的页面是否一致;

通过验证发现是一样的,也就是说后面的数据是可有可无的,所以页面的URL就是基础的字符串拼接上ID

③获取URL

在知道了其结构之后,现在的需求就是获取ID的值了,而ID的值在排行页面获取到的数据中;

而排行页面获取到数据是字典的格式,所以接下来就是遍历字典,获得想要的值

④获取内容

得到URL之后,就按照爬取页面的四部曲去获得内容了,四部曲详情可以查看上篇文章

三、源码

# -*- coding: utf-8 -*-
import requests
import json
if __name__ == '__main__':url = 'https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&uri=1ca1964fe0c343cbab12f94d6dc5ef7e&maxResults=25&zone=&locale=zh'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'}params = {'access-control-allow-credentials': 'true','access-control-allow-origin': 'https://appstore.huawei.com','Access-Control-Expose-Headers': 'session-valid','Cache-Control': 'no-store','Connection': 'keep-alive','content-encoding': 'gzip','Content-Type': 'application/json','Date': 'Thu, 19 May 2022 12:31:17 GMT','Pragma': 'no-cache','Server': 'elb','Transfer-Encoding': 'chunked','X-Content-Type-Options': 'nosniff','X-XSS-Protection': '1',}'''https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app|C5683&shareTo=&currentUrl=https%3A%2F%2Fappstore.huawei.com%2Fapp%2FC5683&accessId=&appid=C5683&zone=&locale=zhhttps://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app|C10652857&shareTo=&currentUrl=https%3A%2F%2Fappstore.huawei.com%2Fapp%2FC10652857&accessId=&appid=C10652857&zone=&locale=zh'''id_list = []response = requests.get(url=url,params=params,headers=headers).json()for dic in response['layoutData']:for id in dic['dataList']:id_list.append(id['appid'])detail_url = 'https://web-drcn.hispace.dbankcloud.cn/uowap/index?method=internal.getTabDetail&serviceType=20&reqPageNum=1&maxResults=25&uri=app|'all_content = []for id in id_list:url_new = detail_url + idcontent = requests.get(url=url_new,headers=headers).json()all_content.append(content)fp = open('./content.json','w',encoding='utf-8')json.dump(all_content,fp=fp,ensure_ascii=False)print('over')

具体分析和思路详解见上篇博客

CSDNhttps://mp.csdn.net/mp_blog/creation/editor/124869764

爬虫实战之华为应用市场相关推荐

  1. python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论——学霸君

    python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论--学霸君 import requests import re import requests from bs4 import ...

  2. python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论——作业帮

    python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论--作业帮 import requests import re import requests from bs4 import ...

  3. python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论——小猿搜题

    python3 爬虫 爬取华为应用市场 APP应用评论(一)爬取全部评论--小猿搜题 import requests import re import requests from bs4 import ...

  4. 我妈给我介绍对象了,我大学还没毕业呢,先在婚介市场也这么卷了的吗?【Python爬虫实战:甜蜜蜜婚介数据采集】

    大家好,我是辣条. 说出来你们可能不信,我一个在校还没毕业的学生家里竟然给我介绍对象了-这么着急的吗?现在结婚市场都这么卷了吗?男孩们女孩们不努力的话是会被家里捉回去结婚的哦. 这是和我妈的聊天对话, ...

  5. Python爬虫:爬取华为应用市场app数据

    爬取华为应用商店的所有APP名称和介绍,因为页面数据是ajax异步加载的,所以要找到对应的接口去解析数据. 爬取华为应用市场app数据 一.分析网页 1. 分析主页 2. 分析appid 3. 分析u ...

  6. python3 爬虫数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云——小猿搜题

    python3 爬虫&数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云--小猿搜题 # 导入扩展库 import re # 正则表达式库 import collections ...

  7. python3爬取华为应用市场APP安装包实战

    ** python3爬取华为应用市场APP安装包实战 ** 一.用浏览器访问华为应用市场,搜索APP并观察URL规律 比如我们要下载微信,那么在搜索框输入微信并回车,会发现url变成http://ap ...

  8. python3 爬虫数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云——学霸君

    python3 爬虫&数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云--学霸君 # 导入扩展库 import re # 正则表达式库 import collections # ...

  9. python3 爬虫数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云——作业帮

    python3 爬虫&数据处理 爬取华为应用市场 APP应用评论(二)根据评论生成词云--作业帮 # 导入扩展库 import re # 正则表达式库 import collections # ...

最新文章

  1. SQL 中的转义字符
  2. palm基础----7 获取系统信息
  3. 查某个类是否实现了某个协议
  4. python核心编程——python对象
  5. 锁相环环路滤波器计算公式_锁相环PLL的电路原理以及基本构成
  6. java解析XML大全(转)
  7. 派生类对基类成员的访问控制之公有继承
  8. python接管已经打开的浏览器_Python Webdriver 从新使用已经打开的浏览器实例
  9. play ---------idea
  10. 对于Typora(markdown)的基本使用
  11. 条码标签打印软件连接不了数据库怎么办?
  12. 原理 CDN加速原理
  13. ld链接时遇到__stack_chk_fail_local错误
  14. larval助手函数——larval中文文档
  15. 股票账户各权限开通条件总结【干活总结】
  16. 点绕坐标系旋转旋转矩阵推导、理解
  17. 俞敏洪演讲:不要为眼前的得失而抓狂 zt
  18. 机器学习入门(浅谈L1和L2正则)
  19. VUE中数组赋值push与=的区别
  20. 《数据库系统概论》课程指南

热门文章

  1. 2020《更好的明年》广东卫视跨年演讲
  2. 今天聊:2~3年前端处于离职困境与舒适区能做些什么
  3. 基于STM32F4开发的智能台灯
  4. 海信提前批电话面试题目
  5. 爬虫需谨慎!那些你不知道的爬虫反爬虫套路,学起来!
  6. 写出求abc中最大数的c语言表达式,有3个整数abc由键盘输入输出其中最大的数
  7. 常用网址-2023整理
  8. Python爬虫中urllib库的使用进阶--cookie的使用
  9. 什么是多重签名?多重签名的概念
  10. 【AI数学原理】概率机器学习(四):半朴素贝叶斯之TAN算法实例