Lấy dữ liệu từ Cửa hàng Play Android [đã đóng cửa]


83

Tôi đã thấy một số Ứng dụng và Trang web sử dụng Dữ liệu từ cửa hàng Android Play. Ví dụ: Ứng dụng hoặc Trang web có xếp hạng Ứng dụng hàng đầu, v.v. Nhưng làm thế nào bạn có thể lấy Dữ liệu? Tôi có thể phân tích cú pháp từ đâu?


Có phần Hỏi & Đáp đang mở trên trang OpenData: đâyđâyđây
philshem 22/09/15

@Umair không, cảm ơn. câu hỏi này đã hơn 5 năm.
Ahmad

Câu trả lời:


47

Có một API mã nguồn mở không chính thức cho Android Market mà bạn có thể cố gắng sử dụng để nhận thông tin bạn cần. Hi vọng điêu nay co ich.


Tôi giả sử bạn đã sử dụng API này trước đây. Bạn có thể giúp tôi với một vấn đề? Đây là câu hỏi của tôi liên quan đến API: stackoverflow.com/questions/10281232/…
Ahmad

@lenik làm cách nào để sử dụng APi này với C #?
Elad Benda

xin chào, bạn có thể nhận được những gì bạn cần bằng cách sử dụng api ở trên không? Tôi cũng đang tìm một cách để tham khảo âm nhạc ...
vinnybad

đây là dành riêng cho Android, trong đó hầu hết việc sử dụng đều liên quan đến web, như PHP; điều duy nhất mà nó có thể cạo sử dụng PHP là thiết bị ID và một ảnh chụp màn hình đó là gì so với API khác ..
Hunain Usman

Cách sử dụng api này để lấy chi tiết trò chơi từ google play bằng php. Tôi không biết phải bắt đầu như thế nào? đây là câu hỏi của tôi. Vui lòng trả lời tôi ... stackoverflow.com/questions/23622898/…

21

Tuyên bố từ chối trách nhiệm: Tôi đến từ 42matters, người đã cung cấp dữ liệu này trên https://42matters.com/api , vui lòng kiểm tra hoặc gửi cho chúng tôi một dòng.

Như lenik đã đề cập, có các thư viện mã nguồn mở đã giúp lấy một số dữ liệu từ GPlay. Nếu bạn muốn tự mình tạo, bạn có thể thử phân tích cú pháp trang Ứng dụng Google Play, nhưng bạn nên chú ý những điều sau:

  • Đảm bảo rằng URL bạn đang cố gắng phân tích cú pháp không bị chặn trong robots.txt - ví dụ: https://play.google.com/robots.txt
  • Hãy chắc chắn rằng bạn không làm điều đó quá thường xuyên, Google sẽ ngăn chặn và có khả năng đưa bạn vào danh sách đen nếu bạn làm quá nhiều.
  • Gửi tiêu đề Tác nhân người dùng chính xác để thực sự cho thấy bạn là một bot
  • Trang của một ứng dụng lớn - đảm bảo bạn chấp nhận gzip và yêu cầu phiên bản dành cho thiết bị di động
  • Trang web GPlay không phải là một API, nó không quan tâm đến việc bạn phân tích cú pháp nên nó sẽ thay đổi theo thời gian. Đảm bảo bạn xử lý các thay đổi - ví dụ: bằng cách kiểm tra để đảm bảo bạn đạt được những gì bạn mong đợi.

Vì vậy, để có được siêu dữ liệu một trang là vấn đề tìm nạp html của trang và phân tích cú pháp nó đúng cách. Với JSoup, bạn có thể thử:

      HttpClient httpClient = HttpClientBuilder.create().build();
      HttpGet request = new HttpGet(crawlUrl);
      HttpResponse rsp = httpClient.execute(request);

      int statusCode = rsp.getStatusLine().getStatusCode();

      if (statusCode == 200) {
           String content = EntityUtils.toString(rsp.getEntity());    
           Document doc = Jsoup.parse(content);
           //parse content, whatever you need
           Element price = doc.select("[itemprop=price]").first();
      }      

Đối với trường hợp sử dụng rất đơn giản đó sẽ giúp bạn bắt đầu. Tuy nhiên, vào thời điểm bạn muốn làm nhiều thứ thú vị hơn, mọi thứ trở nên phức tạp:

  • Tìm kiếm bị cấm trong rô bốt.
  • Việc giữ cho siêu dữ liệu của ứng dụng luôn được cập nhật là điều khó làm. Có hơn 2,2 triệu ứng dụng, nếu bạn muốn làm mới siêu dữ liệu của họ hàng ngày thì có 2,2 yêu cầu / ngày, điều này sẽ 1) bị chặn ngay lập tức, 2) tốn rất nhiều tiền - bi quan 220gb dữ liệu truyền mỗi ngày nếu một ứng dụng là 100k
  • Làm thế nào để bạn khám phá các ứng dụng mới
  • Làm thế nào để bạn biết giá ở mỗi quốc gia, bản dịch của mỗi ngôn ngữ

Danh sách cứ kéo dài. Nếu bạn không muốn làm tất cả những điều này một mình, bạn có thể xem xét API 42matters , hỗ trợ tra cứu và tìm kiếm, biểu đồ hàng đầu của google, truy vấn và bộ lọc nâng cao. Và điều này cho 35 ngôn ngữ và hơn 50 quốc gia.

[2]:


Xin chào Ivan và chào mừng bạn đến với stackoverflow. Cảm ơn bạn đã trả lời. Để có câu trả lời trong tương lai, vui lòng cố gắng cung cấp nhiều thông tin và chi tiết nhất có thể. Nếu bạn có một số ví dụ mã hoặc liên kết đến hướng dẫn / tài liệu, hãy chia sẻ chúng. Đối với câu hỏi này thực sự không thể bổ sung nhiều thông tin nên câu trả lời này là được. Chỉ là một gợi ý cho các hoạt động sau này của bạn trên SO. Cảm ơn bạn
Springrbua

2
Việc tìm nạp các đánh giá của người dùng hiện không được hỗ trợ bởi API 42matters (nếu không thì khá hay). Hy vọng rằng điều này sẽ cứu ai đó khỏi việc tạo và sau đó từ bỏ tài khoản.
acj

API thị trường Google là tốt nhất trong rất nhiều thông tin Chơi chợ Google nhưng nó không phải là mục đích thương mại tự do: p
Hunain Usman

71
Dịch vụ này rất tốn kém
mate64

Làm cách nào để lấy dữ liệu "Người dùng cũng thích" cho api của bạn? Hợp tác với Google Bởi vì Nó rất khó để có được điều đó bằng cách bò trên thị trường ...?
Marian Klühspies

20

Tôi đã viết mã một mô-đun Node.js nhỏ để quét ứng dụng và liệt kê dữ liệu từ Google Play: google-play-scraper

var gplay = require('google-play-scrapper');

gplay.List({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    num: 2
  }).then(console.log);

Các kết quả:

 [ { url: 'https://play.google.com/store/apps/details?id=com.playappking.busrush',
    appId: 'com.playappking.busrush',
    title: 'Bus Rush',
    developer: 'Play App King',
    icon: 'https://lh3.googleusercontent.com/R6hmyJ6ls6wskk5hHFoW02yEyJpSG36il4JBkVf-Aojb1q4ZJ9nrGsx6lwsRtnTqfA=w340',
    score: 3.9,
    price: '0',
    free: false },
  { url: 'https://play.google.com/store/apps/details?id=com.yodo1.crossyroad',
    appId: 'com.yodo1.crossyroad',
    title: 'Crossy Road',
    developer: 'Yodo1 Games',
    icon: 'https://lh3.googleusercontent.com/doHqbSPNekdR694M-4rAu9P2B3V6ivff76fqItheZGJiN4NBw6TrxhIxCEpqgO3jKVg=w340',
    score: 4.5,
    price: '0',
    free: false } ]

19
Tôi đoán vậy, đây là tất cả dữ liệu có sẵn công khai. Sẽ rất buồn cười khi google nói rằng "này, bạn không thu thập dữ liệu trang web của tôi".
Facundo Olano

Làm thế nào để sử dụng điều này với PHP để triển khai vào trang web?
ama rullz amarullzz

Đây là một gói Node.js. Bạn có thể xây dựng một ứng dụng nút đơn giản để kết xuất nó vào cơ sở dữ liệu hoặc bạn có thể kết hợp nó với Browserify để chạy nó từ trình duyệt. Bạn cũng có thể sử dụng trình bao bọc này mà tôi đã viết nếu bạn muốn hiển thị nó như một API RESTful.
Facundo Olano

1
cảm ơn người đàn ông, tôi đã tìm kiếm một công cụ như thế này. Tôi thực sự muốn nhận các bài đánh giá về ứng dụng của bên thứ ba có quyền truy cập bảng điều khiển dành cho nhà phát triển chơi mà tôi không có và API của google đang yêu cầu mã thông báo truy cập. Tôi rất muốn biết kiến ​​trúc cơ bản của mô-đun nút, làm cách nào để nó tìm nạp bài đánh giá từ cửa hàng chơi?
Prateek Jain

1
Tôi cũng tìm thấy một dự án đầy hứa hẹn trên github github.com/s101d1/CSPlayStoreScraper .
smedasn

5

Cửa hàng Google Play không cung cấp dữ liệu này, vì vậy các trang web phải tìm kiếm nó.


2
Không phải (còn?) Đúng 100%, hãy xem Định dạng dữ liệu JSON bằng PHP để biết ví dụ về giao diện XHR được tìm thấy tại https://play.google.com/store/xhr/getdoc- vì vậy rõ ràng là do chính Google Play cung cấp .. Tuy nhiên, kết quả trả về cần một số điều chỉnh để có thể sử dụng được ( như thay thế 4 ký tự ở dòng đầu tiên bằng một cái gì đó giống như data =trước khi thực hiện eval()trên chúng).
Izzy

Điểm tốt. Tôi không biết về các thư viện mà mọi người đã viết để truy cập API không có tài liệu. Theo như tôi biết, Cửa hàng Play không hỗ trợ nó cho mục đích sử dụng chung.
Sparky

1
Không biết. Tôi đã thử cả hai ( HerokuApp và ứng dụng từ nhận xét trước đây của tôi), không có vấn đề gì. Heroku mang lại thoải mái JSON, nhưng tiếc nhớ tổng kiểm phiếu - trong khi một trong những khác cung cấp tất cả, nhưng trong một định dạng khủng khiếp ...
Izzy

1
@Izzy liên kết không hoạt động nữa
Dennis

@Dennis tôi không thể làm gì về điều đó, có vẻ như câu trả lời đã bị xóa. Ngay cả khi không, ứng dụng đó đã biến mất, thậm chí tên miền của họ (playstoreapi.com) hiện đang được "rao bán".
Izzy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.