小米应用商店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)
相关阅读
//查询所有表明 select name from sysobjects where xtype='u' select * from sys.tables //查询数据库中所有的表名及行数
1.安装黑域app,并赋予adb权限 # adb -d shell sh /data/data/me.piebridge.brevent/brevent.sh
这里面有超过50个 user-agent ,包含PC和移动端, 并且可以直接复制粘贴到python代码里. 此方法,是随机其中一个user-agent: # -*
所谓的软性广告是一篇促进特定产品推广的文章。从这个角度来看,可以实现这种效果的文章可以称为软性广告。软性广告营销是一个系统
如何搞定APP中的“搜索”功能?本文主要围绕电商这个类别来给大家分析,一起来看看~如果让你独立负责搜索功能,你需要干些什么呢?可能大