最近项目需要几个品牌手机应用商店上app的一些数据,所以就上网找了一些爬虫的文章,一边学一边做,把方法记录下来,方便以后查看。
代码具体功能是爬取华为应用商店上app的数据,并把数据放到一个csv文件上。
当时参考的文章:

主要爬取游戏和软件两个种类的app,都选取了更新时间这个排序,因为这个排序下面app的数量是最多的。

href_list=s.xpath(’/html/body/div[1]/div[4]/div[1]/div[2]/div[2]/div/div[2]/h4/a/@href’)

应用名称 获取方法如下,其他的几个信息如此类推:

name=s2.xpath(’//*[@id=“bodyonline”]/div/div[4]/div[1]/div/div/div[1]/ul[1]/li[2]/p[1]/span[1]/text()’)[0]

app的下载地址获取方法比较特别,
infor=s2.xpath(’//*[@id=“bodyonline”]/div/div[4]/div[1]/div/div/div[2]/a/@onclick’)[0] #用re.findall把下载地址取出来 downaddr=re.findall(r"’[’]",infor)[5]#取出下载地址

具体代码如下,把写入文件的路径修改成自己的路径就可以直接使用

import urllib.request
from lxml import etree
import re
import datetimewith open('D:/software_file/pythonFile/huawei.csv','w',encoding='gb18030') as f:f.write("{},{},{},{},{},{},{},{},{},{},{},{}\n".format('应用名称','应用类型','公司名称','app大小','版本号','更新时间','评分人数','下载人数',\'应用介绍','图标','下载地址','爬取时间'))for dev in range(2,14,11):for page in range(1,10):if dev==2:devType='game'if dev==13:devtype='soft'url ="http://app.hicloud.com/{}/list_{}_1_{}".format(devType,dev,page)headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")#直接访问应用市场网址会提示403错误#需要模拟浏览器访问,解决403错误opener = urllib.request.build_opener()opener.addheaders = [headers]data = opener.open(url).read()s=etree.HTML(data)href_list=s.xpath('/html/body/div[1]/div[4]/div[1]/div[2]/div[2]/div/div[2]/h4/a/@href')for nhref in href_list:url2="http://app.hicloud.com"+nhrefdata2 = opener.open(url2).read()s2=etree.HTML(data2)try:name=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[1]/li[2]/p[1]/span[1]/text()')[0]size=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[2]/li[1]/span/text()')[0]updataTime=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[2]/li[2]/span/text()')[0]company=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[2]/li[3]/span/@title')[0]version=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[2]/li[4]/span/text()')[0]downloadNum=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[1]/li[2]/p[1]/span[2]/text()')[0]strNum=downloadNum.lstrip('下载:')introduct=s2.xpath('//*[@id="app_strdesc"]/text()')[0]# csv是用英文逗号来区分一列的,所以如果应用介绍中有英文逗号需要替换成空格,要不然应用介绍会分成好几列if ',' in introduct:introduct=introduct.replace(',','  ')updataTime=updataTime.strip()#去掉字符串前后空格company=company.strip()#去掉字符串前后空格version=version.strip()#去掉字符串前后空格strNum=strNum.strip()#去掉字符串前后空格introduct=introduct.strip()#去掉字符串前后空格picture=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[1]/ul[1]/li[1]/img/@src')[0]              infor=s2.xpath('//*[@id="bodyonline"]/div/div[4]/div[1]/div/div/div[2]/a/@onclick')[0]downaddr=re.findall(r"['](.*?)[']",infor)[5]#取出下载地址                                                     currTime=datetime.datetime.now()f.write('{},{},{},{},{},{},{},{},{},{},{},{}'.format(name,'',company,size,version,updataTime,'',strNum,introduct,picture,downaddr,currTime))f.write('{}'.format('\n'))except IndexError:#出现异常跳出,防止程序崩溃passprint("{},{}".format(dev,page))

生成的表格效果图如下,大概400个app,3分钟左右就爬取完成。

后面还做了小米和魅族应用市场的app爬虫,等有时间再把更新上来吧

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

今天咱爬点不一样的!获取华为应用商店app信息!相关推荐

  1. python爬虫 获取华为应用商店app信息

    最近项目需要几个品牌手机应用商店上app的一些数据,所以就上网找了一些爬虫的文章,一边学一边做,把方法记录下来,方便以后查看. 代码具体功能是爬取华为应用商店上app的数据,并把数据放到一个csv文件 ...

  2. python爬虫 获取小米应用商店app信息

    接着上一篇文章,这次爬取小米app的数据. 主要是爬取应用和游戏这两类的app数据 import requests from lxml import etree import re import da ...

  3. Android 获取用户安装的app信息

    在电子市场类软件中,管理应用程序要获取已经安装的应用程序列表,下面提供两种方法,参考了 http://www.cnblogs.com/mengshu-lbq/archive/2010/09/09/18 ...

  4. mfc怎么获取进程的线程数_Python多线程获取小米应用商店App,看看我是怎么做到的

    一.[项目背景] 小米应用商店给用户发现最好的安卓应用和游戏,安全可靠,可是要下载东西要一个一个的搜索太麻烦了.而且速度并不是很快. 今天小编就教大家利用多线程爬取小米应用商店的游戏模块,快速获取我们 ...

  5. 小米手机 开发app python_一篇文章教会你用Python多线程获取小米应用商店App

    [一.项目背景] 小米应用商店给用户发现最好的安卓应用和游戏,安全可靠,可是要下载东西要一个一个的搜索太麻烦了.而已速度不是很快. 今天用多线程爬取小米应用商店的游戏模块.快速获取. [二.项目目标] ...

  6. python脚本获取华为边缘设备NPU信息

    华为边缘设备(Atlas500)通过以下命令查询NPU的基本信息 npu-smi info 结果如下: +----------------------------------------------- ...

  7. python爬虫案例——根据网址爬取中文网站,获取标题、子连接、子连接数目、连接描述、中文分词列表

    全栈工程师开发手册 (作者:栾鹏) python教程全解 其中使用到了urllib.BeautifulSoup爬虫和结巴中文分词的相关知识. 调试环境python3.6 # 根据连接爬取中文网站,获取 ...

  8. 爬取百度地图,获取城市楼盘信息

    有任何需要修正的地方请大家私信,评论. 大佬轻喷@-@ 以下是小项目的需求: *爬取百度地图,获取目标城市楼盘信息, *包括目标楼盘的经纬度,名称,并保存在excel文档中. 大家稍微等下,<这 ...

  9. python爬取网站时,一键获取headers、url等信息(真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽)

    python爬取网站时,一键获取headers.url等信息 (真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽) 作为Python的使用者,我今天就和大家来分享分享我学习python的经验 ...

最新文章

  1. oracle 数据有引号,oracle插入字符串数据时字符串中有'单引号问题
  2. 微信助力活动表结构设计
  3. 【数字信号处理】相关函数 ( 相关函数性质 | 相关函数共轭对称性质 | 实信号自相关函数偶对称 | 复信号自相关函数共轭对称 | 复信号互相关函数共轭对称 )
  4. 图数据库并非要取代区块链,而是让区块链如虎添翼
  5. osgi和spring区别_OSGI和Spring动态模块–简单的Hello World
  6. find_cmd函数分析
  7. [css] 你有用过vw布局吗?和使用rem有什么区别?
  8. 域环境下文件服务器,域和文件服务器
  9. mysql伪表 dual_Oracle系列:(5)select子句
  10. [Project Euler] 来做欧拉项目练习题吧: 题目013
  11. 5.10 Ext JS Grid中 WidgetColumn(组件列)的使用
  12. easyUI中datagrid中getSelected和getSelections的用法
  13. JavaScript 键盘事件处理
  14. Linux符号连接的层数过多
  15. SpringBoot(十六)_springboot整合JasperReport6.6.0
  16. 2022年全球及中国MICC电缆行业运行战略规划与未来投资策略分析报告
  17. 微信小程序手机号-springboot
  18. 中文分词-转载3_一个北京程序员
  19. 动作事件监听器——实现ActionListener接口
  20. DOS窗口命令--实用完整版

热门文章

  1. Revit中添加水平仰视平面图及水平剖面
  2. TMS320F2837x开发例程使用手册
  3. D2. Two Hundred Twenty One (hard version)
  4. FileZilla远程上传文件失败原因和解决办法
  5. 电脑画流程图用什么软件好?这3款软件很好用
  6. 蓝牙Profile的概念和常见种类
  7. 使用qq邮箱进行服务器邮件代发
  8. 腾讯云windows server搭建valheim(英灵神殿)服务器
  9. 【Python】turtle海龟画图练习
  10. Windows压缩工具 “ Bandizip 与 7-zip ”