我是靠谱客的博主 爱笑火龙果,最近开发中收集的这篇文章主要介绍python爬取appstore的评论数据的步骤_评论抓取:Python爬取微信在APPStore上的评论内容及星级...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#完整程序如下:

importrequestsimportredefgetHTMLText(url):try:

r=requests.get(url)

r.raise_for_status()

r.encoding=r.apparent_encodingreturnr.textexcept:return ''

defprintAPPName(html):try:

pattern= re.compile(r'{"im:name":{"label":(.*?)}, "rights"', re.S)#如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始,不会跨行。

#而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配

APPName =re.findall(pattern, str(html))return 'APPName:' +str(APPName)except:return ''

deffillUnivlist(titles, comments, stars, html):try:

pattern= re.compile(r'"title":{"label":(.*?)}, "content"', re.S) #提取标题

nbaInfo = re.findall(pattern, str(html)) #提取title

#findStr = '"title":{"label":'

#nbaInfo = nbaInfo1[nbaInfo1.find(findStr)+len(findStr):]

patternFloor = re.compile(r'"content":{"label":(.*?), "attributes":{"type":"text"}}', re.S) #提取content

floorText =re.findall(patternFloor, str(html))

patternStar= re.compile(r'"im:rating":{"label":(.*?)}, "id"', re.S) #提取星级

star =re.findall(patternStar, str(html))#print(str(star))

number=len(nbaInfo)print(number)for i inrange(number):

Info= nbaInfo[i] #利用Tools类移除不想要的格式字符

if i==0:Info = Info[Info.find('"title":{"label":')+len('"title":{"label":'):]#print(Info)

Info1 =floorText[i]

Info2=star[i]#print(Info2+"hello")

titles.append('title:' +Info)

comments.append('content:' +Info1)

stars.append('star:' +Info2)except:return ''

defwriteText(titleText, fpath):try:

with open(fpath,'a', encoding='utf-8') as f:

f.write(str(titleText)+'n')

f.write('n')

f.close()except:return ''

defwriteUnivlist(titles, comments, stars, fpath, num):

with open(fpath,'a', encoding='utf-8') as f:for i inrange(num):

f.write(str(stars[i])+ 'n')

f.write('*' * 10 + 'n')

f.write(str(titles[i])+ 'n')

f.write('*' * 50 + 'n') #输入一行*号

f.write(str(comments[i]) + 'n')

f.write('*' * 100 + 'n')

f.close()defmain():

count=0

url= 'https://itunes.apple.com/rss/customerreviews/page=1/id=414478124/sortby=mostrecent/json?l=en&&cc=cn' #要访问的网址

output_file = 'D:/StockInfo.txt' #最终文本输出的文件

html = getHTMLText(url) #获取HTML

APPName =printAPPName(html)

writeText(APPName, output_file)for i in range(10):

i= i + 1titles=[]

comments=[]

stars=[]

url= 'https://itunes.apple.com/rss/customerreviews/page=' + str(i) + '/id=414478124/sortby=mostrecent/json?l=en&&cc=cn'html=getHTMLText(url)

fillUnivlist(titles, comments, stars, html)

writeUnivlist(titles, comments, stars, output_file, len(titles))

count= count + 1

print("r当前进度: {:.2f}%".format(count * 100 / 10), end="")if __name__ == '__main__':

main()#如果想爬取其他APP只需要改变id的值,如想爬腾讯的,只需将id=414478124换成id=444934666#另外本程序是模仿https://www.cnblogs.com/sea-ocean/p/6601421.html的

最后

以上就是爱笑火龙果为你收集整理的python爬取appstore的评论数据的步骤_评论抓取:Python爬取微信在APPStore上的评论内容及星级...的全部内容,希望文章能够帮你解决python爬取appstore的评论数据的步骤_评论抓取:Python爬取微信在APPStore上的评论内容及星级...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部