「Xamarin.AndroidでGoogle Playからアプリ情報をブッコ抜く」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | [[Xamarin.Androidで強制アップデートを実装する]]方法はみんなどうやって実装しているのかを[[ググって]]みていたら、[[Google Play]]から[[スクレイピング]]でバージョン情報を取れば確実だという記事が多かった。 | + | [[Xamarin.Androidで強制アップデートを実装する]]方法はみんなどうやって実装しているのかを[[ググって]]みていたら、 |
+ | [[Google Play]]から[[スクレイピング]]でバージョン情報を取れば確実だという記事が多かった。 | ||
== 利点 == | == 利点 == | ||
6行目: | 7行目: | ||
== 欠点 == | == 欠点 == | ||
− | * [[スクレイピング]] | + | * [[スクレイピング]]なのでGoogle Playのデザインが変わると機能しなくなる |
*: [[ググる]]と二種類の方法が出てくるので歴史上1回のデザイン変更が発生している模様 | *: [[ググる]]と二種類の方法が出てくるので歴史上1回のデザイン変更が発生している模様 | ||
== 実装 == | == 実装 == | ||
− | + | とりあえずGoogle Playの画面下部にある情報群を[[HtmlAgilityPack]]でブッコ抜いてみる。 | |
現在のデザインではHTMLタグにはその項目固有のidやclassなどは設定されていない。またGoogle Play Consoleでの設定次第で出現項目も変わってくるようだ。そのため「配列の4番目」などと決め打ちにはできない模様。細かい部分はアプリごとに実装しよう。 | 現在のデザインではHTMLタグにはその項目固有のidやclassなどは設定されていない。またGoogle Play Consoleでの設定次第で出現項目も変わってくるようだ。そのため「配列の4番目」などと決め打ちにはできない模様。細かい部分はアプリごとに実装しよう。 | ||
− | <source | + | <source> |
using Android.App; | using Android.App; | ||
using Android.Widget; | using Android.Widget; | ||
38行目: | 39行目: | ||
agent.UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15"; | agent.UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15"; | ||
var doc = agent.Load("https://play.google.com/store/apps/details?id=skt.android.mayukoyokubariset&hl=ja"); | var doc = agent.Load("https://play.google.com/store/apps/details?id=skt.android.mayukoyokubariset&hl=ja"); | ||
− | |||
− | |||
var nodes = doc.DocumentNode | var nodes = doc.DocumentNode | ||
.SelectNodes("//div[contains(@class, 'hAyfc')]/span[contains(@class, 'htlgb')]"); | .SelectNodes("//div[contains(@class, 'hAyfc')]/span[contains(@class, 'htlgb')]"); | ||
− | |||
− | |||
Console.WriteLine("更新日 :" + nodes[0].InnerText); | Console.WriteLine("更新日 :" + nodes[0].InnerText); | ||
Console.WriteLine("サイズ :" + nodes[1].InnerText); | Console.WriteLine("サイズ :" + nodes[1].InnerText); |