爬行的Google Play商店应用

时间:2018-09-03 14:22:36

标签: android python-3.x google-play web-crawler

我想抓取Google Play商店并获取特定类别的所有应用ID。当我执行以下代码时,我只获得了前49个应用程序的应用程序ID。但我想获取所有应用程序ID。我该如何实现? 我使用的网址是https://play.google.com/store/search?q=sports&c=apps&hl=en进行抓取。

import urllib.request, urllib.error, urllib.parse
from bs4 import BeautifulSoup

url=input('Enter:')
html=urllib.request.urlopen(url).read()
soup=BeautifulSoup(html,'html.parser')

tags=soup('a')
l=list()
for tag in tags:
    x=tag.get('href',None)
    if x.find("/store/apps/details?id=")!=-1:
       if not(x[23:] in l):
            l.append(x[23:])
print(l)

3 个答案:

答案 0 :(得分:1)

在这样的动态站点上,最好使用内部XHR获取数据而不是解析html。每个显示的48个应用都有一个POST请求,您可以从脚本中调用该请求。 In this blog post是如何以这种方式从Google Play商店获得应用评论的示例。

答案 1 :(得分:0)

尝试使用专门为此定制的网络服务:

https://www.apify.com/

查看他们的python3示例: https://github.com/yonnyZer0/apify-python3-example/

答案 2 :(得分:0)

在48个或49个第一个应用程序之后,以下一批应用程序将更改其类/标识。我抓取的方式是运行两个抓取批处理。首先是前48个应用程序,然后是其余的。