最近在用node.js爬取google Play, Itunes Connect 的數(shù)據(jù)。
總結(jié)一下思路,給大家做參考。
我抓取的都是某個(gè)app的評(píng)論,評(píng)星相關(guān)的信息。
以下我分前后臺(tái)和分網(wǎng)站說(shuō)明。
前臺(tái):
注意
<em>要注意的就是這兩個(gè)網(wǎng)站的評(píng)論都按語(yǔ)言分區(qū)的</em>
googlePlay
舉幾個(gè)lang的例子:
英文(en) 中文-簡(jiǎn)體(zh-cn) 中文-繁體(zh_TW) 日語(yǔ)(ja) 法語(yǔ)(FR) 德語(yǔ)(DE_DE) 意大利語(yǔ)(it_IT) 西班牙語(yǔ)(ES) 荷蘭語(yǔ)(nl_NL) 土耳其語(yǔ)(tr_TR) 阿拉伯語(yǔ)(ar-BH) 克羅地亞語(yǔ)(hr-BA)
后幾個(gè)DE_DE這種'_'前后一致的可以只寫一個(gè)app Store/Itunes
舉幾個(gè)lang的例子:
en, cn, TW, fr, DE, it, nl, tr
前臺(tái)抓取
- google Play
前臺(tái)抓取其實(shí)沒(méi)什么好說(shuō)的,常規(guī)抓取就好了。
googlePlay的語(yǔ)言在鏈接最后,鏈接如下:
https://play.google.com/store/apps/details?id={youAppName}&hl={lang} ```
有一個(gè)問(wèn)題,是這樣的:從頁(yè)面抓取的評(píng)論時(shí)間都是不同語(yǔ)言顯示的,可能是我技術(shù)不到家??,像什么阿拉伯語(yǔ)之類的不會(huì)轉(zhuǎn)換,所以無(wú)法按時(shí)間排序。如果只抓取中文英文什么的就不是問(wèn)題了。
- appStore /Itunes
網(wǎng)頁(yè)版appStore只會(huì)顯示最好的3條評(píng)論(四星以上不夠3條的也不顯示其他評(píng)論),所以沒(méi)有什么抓取的價(jià)值,鏈接如下:
https://itunes.apple.com/{lang}/app/{appName}/id{youAppId}?mt=8 ```
appName有的app有,有的沒(méi)有,看具體app的鏈接吧~
<p>用前臺(tái)方式獲取完整評(píng)論的方式就是通過(guò)Itunes
具體鏈接如下:
itunes.apple.com/WebObjects/MZStore.woa/wa/userReviewsRow?cc={lang}&id={youAppId}&displayable-kind=11&startIndex=0&endIndex=100&sort=0&appVersion=all
通過(guò)這個(gè)鏈接獲取需要在請(qǐng)求的時(shí)候,在header中配置一個(gè)用戶代理
headers: {'User-Agent': 'iTunes/11.0 (Windows; Microsoft Windows 7 Business Edition Service Pack 1 (Build 7601)) AppleWebKit/536.27.1'}
</p>
再通過(guò)變換lang就可以獲取全部的評(píng)論了,google一定要翻墻,itunes中文可以不翻墻,其他語(yǔ)言好像也需要。
google一定要能在終端里ping通google,如果只是網(wǎng)頁(yè)可以訪問(wèn),終端ping不通也是沒(méi)法抓的。