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

https://blog.csdn.net/datacastle/article/details/78812363
基本是按照上面链接中文章的方法去做的

主要爬取游戏和软件两个种类的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数据 import requests from lxml import etree import re import da ...

  2. 今天咱爬点不一样的!获取华为应用商店app信息!

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

  3. python爬虫获取拉钩网在线搜索招聘信息(超实用!)

    在之前的博客<用python爬虫制作图片下载器(超有趣!)>中,小菌为大家分享了如何制作一个快捷便利的图片下载器.本次分享,小菌为大家带来的同样是关于爬虫程序方面的分享--获取拉勾网在线搜 ...

  4. Python爬虫获取最近七天天气预报信息

    主要用到python的requests库和BeatifulSoup库,代码如下: #encoding:utf-8 import requests import psycopg2 import date ...

  5. Python 爬虫获取 URP 教务系统学籍信息,你的信息 正暴露在 互联网中!

    初衷 本文旨在提醒同学们及时修改密码,增强保护个人隐私的意识,因此代码中一些关键数据以及校名等信息不会公开!复制粘贴文章中的代码不会爬到任何东西.只是作为学习 Python 爬虫的一点总结而已! 作者 ...

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

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

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

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

  8. python爬虫获取天猫店铺信息(更新到2020年)

    python爬虫获取天猫店铺信息 爬取需求 在天猫搜索一个关键词,然后抓取这个关键词下的相关店铺,由于taobao的反爬策略,只能爬取到第十页大概200个店铺的信息. 效果预览 最终爬取的数据用exc ...

  9. python爬虫获取肯德基门店信息

    python爬虫获取肯德基门店信息 1.在谷歌浏览器中打开肯德基官网,进入餐厅查询页面 2.在搜索框中输入地区并按f12打开开发者工具 发现已经抓取到了一条Ajax请求,可以从中获取请求的url,以及 ...

最新文章

  1. JDK1.8 中的双冒号::是什么语法?
  2. visual studio 不能创建biztalk 项目
  3. 用户线程和内核线程之间的区别
  4. Javascript中的翻转器
  5. Android官方开发文档Training系列课程中文版:如何避免ANR?
  6. 2018ACM-ICPC国际大学生程序设计竞赛亚洲区域赛(青岛站)赛后总结
  7. listview的item中嵌套多个EditText时的问题
  8. NativeXml (2):对象建立
  9. Android已读未读功能,Android实现小圆点显示未读功能
  10. Spring Cloud Consul
  11. 励志幽默:郭德纲经典语句
  12. PHP数据库CURD接口与实现(接口实战)
  13. seaborn颜色报错 ValueError: Invalid RGBA argument: [‘#f9802d‘, ‘#f26b15‘, ‘#fdc48f‘]
  14. 民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。
  15. 【数据结构PTA 7-158-161】
  16. 向Oracle表中的添加数据
  17. mac应用程序不能打开问题解决
  18. 没赶上互联网,也没赶上移动互联网,微软到底赶上了什么?
  19. 分析nmn抗衰老的真实性,nmn的效果到底怎么样
  20. MySQL数据的独立性包括_数据库独立性是指数据库和什么相互独立?

热门文章

  1. hydra-microservice 中文手册(3W字预警)
  2. 第四步:让主角Player发射飞镖
  3. 小散量化炒股记|如何用MySQL搭建本地股票量化数据库
  4. QQ邮箱开启SMTP服务的步骤
  5. 荣耀总裁赵明:拍照就像用单反
  6. Python第三方库导入
  7. 查看进程启动时间 linux,Linux详细查看进程启动时间
  8. Linux运维面试题(1)
  9. CSDN写作技巧记录
  10. linux下指定某个ip去ping,Linux下指定源ip进行ping操作的方法