必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-10-12 16:44:24来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

小米应用商店app

接着上一篇文章,这次爬取小米APP数据

在这里插入图片描述

主要是爬取应用和游戏这两类的app数据

import requests
from lxml import etree
import re
import datetime

url_2 = "http://app.mi.com/"


def fun(url, page1, pageId1):
    data = requests.get(url).text
    # 去除“”
    a = re.sub('"', '', data)
    # 去除 :
    b = re.sub(':', '', a)
    # 去除 ,
    c = re.sub(',', '', b)
    d = re.sub('{', '', c)
    e = re.sub('}', '', d)
    strId = re.findall(r"packageName(.+?)appId", e)

    leng = len(strId)
    if leng == 0:
        print(leng)
        return

    for a in strId:
        nstr = "http://app.mi.com/details?id=" + a
        data2 = requests.get(nstr).text
        s = etree.HTML(data2)
        try:
            name = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/p/h3/text()')[0]
            ntype = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/p/p[2]/text()[1]')[0]
            company = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/p/p[1]/text()')[0]
            if ',' in company:
                company = company.replace(',', ' ')
            size = s.xpath('/html/body/p[4]/p[1]/p[2]/p[2]/p/ul[1]/li[2]/text()')[0]
            if ',' in size:
                size = size.replace(',', '')
            version = s.xpath('/html/body/p[4]/p[1]/p[2]/p[2]/p/ul[1]/li[4]/text()')[0]
            if ',' in version:
                version = version.replace(',', '')
            updateTime = s.xpath('/html/body/p[4]/p[1]/p[2]/p[2]/p/ul[1]/li[6]/text()')[0]
            intrdouct = s.xpath('/html/body/p[4]/p[1]/p[4]/p/text()')
            merge = ''
            merge = merge.join(intrdouct)
            merge = merge.strip()
            if ',' in merge:
                merge = merge.replace(',', ' ')
            # 去除字符串中的换行符 CR
            merge = merge.replace('\r', '')

            score = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/p/span/text()')[0]
            picture = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/img/@src')[0]
            download = s.xpath('/html/body/p[4]/p[1]/p[2]/p[1]/p/p[2]/a/@href')[0]
            downloadaddr = 'http://app.mi.com' + download
            currTime = datetime.datetime.now()
            f.write('{},{},{},{},{},{},{},{},{},{},{},{}\n'.format(name, ntype, company, size, version,
                                                                   updateTime, score, ' ', merge,
                                                                   picture, downloadaddr, currTime))
        # 出现异常跳出,防止程序崩溃
        except IndexERROR:
            pass
        print("{}  {}".format(pageId1, page1))


with open('D:/software_file/PythonFile/xiaomi_2.csv', 'w', encoding='gb18030') as f:
    f.write(
        "{},{},{},{},{},{},{},{},{},{},{},{}\n".format('应用名称', '应用类型', '公司名称', 'app大小', '版本号',
                                                       '更新时间', '评分人数', '下载人数',
                                                       '应用介绍', '图标', '下载地址', '爬取时间'))

    for pageId in range(1, 16):
        for page in range(67):
            url2 = "http://app.mi.com/categotyAllListApi?page={}&categoryId={}&pageSize=30".format(page, pageId)
            fun(url2, page, pageId)

    # 读取pageId为27的网页
    # #(67):
    for page in range(67):
        url2 = "http://app.mi.com/categotyAllListApi?page={}&categoryId={}&pageSize=30".format(page, 27)
        fun(url2, page, pageId)

相关阅读

sql server 统计表信息

//查询所有表明 select name from sysobjects where xtype='u' select * from sys.tables //查询数据库中所有的表名及行数

黑域app使用方法

1.安装黑域app,并赋予adb权限 # adb -d shell sh /data/data/me.piebridge.brevent/brevent.sh

User-Agent大全,可直接复制到python代码里

这里面有超过50个 user-agent ,包含PC和移动端, 并且可以直接复制粘贴到python代码里. 此方法,是随机其中一个user-agent: # -*

每个人都需要了解有关软性广告营销的更多信息

所谓的软性广告是一篇促进特定产品推广的文章。从这个角度来看,可以实现这种效果的文章可以称为软性广告。软性广告营销是一个系统

小白PM跟我来:如何搞定APP中的“搜索”功能?

如何搞定APP中的“搜索”功能?本文主要围绕电商这个类别来给大家分析,一起来看看~如果让你独立负责搜索功能,你需要干些什么呢?可能大

分享到:

栏目导航

推荐阅读

热门阅读