ios - 检索在应用程序商店或 iTunes 商店中按给定术语搜索结果的应用程序列表

标签 ios node.js web-scraping app-store itunes-store

我正在使用 Node.js 模块从 iTunes/Mac App Store 中抓取应用程序数据。我的目的是在特定关键字搜索的搜索结果中找到应用排名。

https://github.com/facundoolano/app-store-scraper

直到今天,该模块还在按关键字对搜索结果进行正确的应用排名,但突然它显示的搜索结果与 iPhone 或 Mac 中的应用商店完全不同。

有谁知道苹果方面有什么变化吗?

模块使用下面的苹果网址来查找搜索结果。

const BASE_URL = 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/search?clientApplication=Software&media=software&term='; 

以上网址有变化吗?

最佳答案

这里是 itunes 搜索 api 的官方 api 文档 - https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/

下面是您尝试执行的搜索的示例:

curl -X GET \
  'https://itunes.apple.com/search?clientApplication=Software&media=software&term=Misfits%20Emoji' \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Host: itunes.apple.com' \
  -H 'Postman-Token: 06880666-0bb8-4b43-80ed-53e4300444cd,004c0b3c-dffd-4b3d-90e3-e36167e2a127' \
  -H 'User-Agent: PostmanRuntime/7.20.1' \
  -H 'cache-control: no-cache'

例如,我使用此应用程序来搜索 https://apps.apple.com/us/app/misfits-emoji/id1172889389它是响应中返回的第一项。

回应:

{
    "resultCount": 1,
    "results": [{
        "artistViewUrl": "https://apps.apple.com/us/developer/fan-si-inc/id932552952?uo=4",
        "artworkUrl60": "https://is2-ssl.mzstatic.com/image/thumb/Purple71/v4/f5/ac/81/f5ac813b-2c60-5739-023d-fca28a4b5fb5/source/60x60bb.jpg",
        "artworkUrl100": "https://is2-ssl.mzstatic.com/image/thumb/Purple71/v4/f5/ac/81/f5ac813b-2c60-5739-023d-fca28a4b5fb5/source/100x100bb.jpg",
        "screenshotUrls": ["https://is2-ssl.mzstatic.com/image/thumb/Purple71/v4/95/8b/4c/958b4c46-b4d8-f035-d723-ef764131a1f9/pr_source.png/392x696bb.png", "https://is3-ssl.mzstatic.com/image/thumb/Purple71/v4/ab/c0/a2/abc0a2f7-30c3-6f4f-2fa9-f2ccf4b15912/pr_source.png/392x696bb.png"],
        "ipadScreenshotUrls": [],
        "appletvScreenshotUrls": [],
        "artworkUrl512": "https://is2-ssl.mzstatic.com/image/thumb/Purple71/v4/f5/ac/81/f5ac813b-2c60-5739-023d-fca28a4b5fb5/source/512x512bb.jpg",
        "isGameCenterEnabled": false,
        "advisories": [],
        "supportedDevices": ["iPad2Wifi-iPad2Wifi", "iPad23G-iPad23G", "iPhone4S-iPhone4S", "iPadThirdGen-iPadThirdGen", "iPadThirdGen4G-iPadThirdGen4G", "iPhone5-iPhone5", "iPodTouchFifthGen-iPodTouchFifthGen", "iPadFourthGen-iPadFourthGen", "iPadFourthGen4G-iPadFourthGen4G", "iPadMini-iPadMini", "iPadMini4G-iPadMini4G", "iPhone5c-iPhone5c", "iPhone5s-iPhone5s", "iPadAir-iPadAir", "iPadAirCellular-iPadAirCellular", "iPadMiniRetina-iPadMiniRetina", "iPadMiniRetinaCellular-iPadMiniRetinaCellular", "iPhone6-iPhone6", "iPhone6Plus-iPhone6Plus", "iPadAir2-iPadAir2", "iPadAir2Cellular-iPadAir2Cellular", "iPadMini3-iPadMini3", "iPadMini3Cellular-iPadMini3Cellular", "iPodTouchSixthGen-iPodTouchSixthGen", "iPhone6s-iPhone6s", "iPhone6sPlus-iPhone6sPlus", "iPadMini4-iPadMini4", "iPadMini4Cellular-iPadMini4Cellular", "iPadPro-iPadPro", "iPadProCellular-iPadProCellular", "iPadPro97-iPadPro97", "iPadPro97Cellular-iPadPro97Cellular", "iPhoneSE-iPhoneSE", "iPhone7-iPhone7", "iPhone7Plus-iPhone7Plus", "iPad611-iPad611", "iPad612-iPad612", "iPad71-iPad71", "iPad72-iPad72", "iPad73-iPad73", "iPad74-iPad74", "iPhone8-iPhone8", "iPhone8Plus-iPhone8Plus", "iPhoneX-iPhoneX", "iPad75-iPad75", "iPad76-iPad76", "iPhoneXS-iPhoneXS", "iPhoneXSMax-iPhoneXSMax", "iPhoneXR-iPhoneXR", "iPad812-iPad812", "iPad834-iPad834", "iPad856-iPad856", "iPad878-iPad878", "iPadMini5-iPadMini5", "iPadMini5Cellular-iPadMini5Cellular", "iPadAir3-iPadAir3", "iPadAir3Cellular-iPadAir3Cellular", "iPodTouchSeventhGen-iPodTouchSeventhGen", "iPhone11-iPhone11", "iPhone11Pro-iPhone11Pro", "iPadSeventhGen-iPadSeventhGen", "iPadSeventhGenCellular-iPadSeventhGenCellular", "iPhone11ProMax-iPhone11ProMax"],
        "kind": "software",
        "features": [],
        "contentAdvisoryRating": "4+",
        "trackCensoredName": "Misfits Emoji",
        "languageCodesISO2A": ["EN"],
        "fileSizeBytes": "32731136",
        "sellerUrl": "http://fan.si",
        "averageUserRatingForCurrentVersion": 3.5,
        "userRatingCountForCurrentVersion": 4,
        "trackViewUrl": "https://apps.apple.com/us/app/misfits-emoji/id1172889389?uo=4",
        "trackContentRating": "4+",
        "currentVersionReleaseDate": "2016-11-21T17:30:21Z",
        "releaseNotes": "Updated icons.",
        "isVppDeviceBasedLicensingEnabled": true,
        "formattedPrice": "$0.99",
        "trackId": 1172889389,
        "trackName": "Misfits Emoji",
        "primaryGenreName": "Entertainment",
        "genreIds": ["6016", "6002"],
        "primaryGenreId": 6016,
        "sellerName": "Fansi Inc",
        "releaseDate": "2016-11-17T18:12:35Z",
        "minimumOsVersion": "8.0",
        "currency": "USD",
        "version": "1.0.1",
        "wrapperType": "software",
        "artistId": 932552952,
        "artistName": "Fan.si Inc.",
        "genres": ["Entertainment", "Utilities"],
        "price": 0.99,
        "description": "Social Club Misfits present this very rare emoji collection featuring dozens of new emoticon pictures and exclusive gifs. Satisfy all you communication needs with pizza, pugs, pineapples, and so much more!",
        "bundleId": "si.fan.socialmisfits-emoji"
    }]
}

关于ios - 检索在应用程序商店或 iTunes 商店中按给定术语搜索结果的应用程序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59465997/

相关文章:

ios - UIStoryBoard ViewControllers 是否与 "Vanilla"ViewControllers 不同?

javascript - 使用 npm 安装 Handlebars.js 时出现问题

selenium-webdriver - 使用 selenium webdriver 获取网页的移动版本而不是桌面版本

javascript - 使用 Requests/BeautifulSoup 抓取网站时绕过脚本响应

ios - 在 iPhone 中通过触摸外部关闭 ActionSheet

ios - Iphone 6 plus 模拟器工作正常,除了设备

javascript - NPM 安装后找不到模块错误

node.js - 将 Haxe 模块导入 node.js 脚本

selenium - 是否可以使用 Selenium WebDriver 来驱动 PhantomJS?

ios - SWIFT 3 : Capture photo with AVCapturePhotoOutput (Need another set of eyes to look over code, 为什么这不起作用?)