获取黑莓应用世界(API)中特定应用数据的最佳方法

4 投票
3 回答
621 浏览
提问于 2025-04-16 21:24

我正在用Python收集关于手机应用的数据,现在我想找到一个最好的方法来访问Blackberry应用商店的数据。

到目前为止,我已经找到了iOS和Android的解决方案。对于iOS,我使用的是苹果提供的API(http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html),而Android的解决方案则是模拟一个手机,以一种结构化的方式收集数据,就像真实的手机一样。

现在我找不到类似的解决方案来访问BlackBerry应用商店,所以我想问问,有什么好的方法呢?我可以抓取网站的数据,但我不太想这样,因为如果他们更改了网站,我的抓取程序就会失效。理想情况下,我希望使用一个提供的API,或者模拟一个BlackBerry手机,以更结构化的方式访问应用商店的数据。有什么建议吗?

3 个回答

0

我一直在用Selenium WebDriverphantomDriver.NET中的CSQuery来抓取Blackberry网站,直到现在都没有遇到更新的问题。

//Creating dynamic browser and download the page source code
//based on apipath by using selenium web driver 
public IWebDriver driver;
driver = new PhantomJSDriver(phantomDriverPath);

//driver=new ChromeDriver(chromeDriverPath); 

driver.Url = "https://appworld.blackberry.com/webstore/search/"+appname+"/lang=en&countrycode=IN";
driver.Navigate();

//Waiting for page loading Thread.Sleep(2000);//2 seconds 
if (driver.PageSource != null){

//Assigning downloaded page source code to CSQuery 
CQ dom = CQ.CreateDocument(driver.PageSource);

//Waiting for page loading 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));

//find the elements what ever you want based on the id,class name,tag name 
string title1 = dom["#topListtopResultsAppTemplateHTML_listItem_0_title"].Text();
 }

在你开始写代码之前,请先在你的电脑上下载Selenium WebDriver和phantom driver(比如放在 C:\Users\rakesh\Documents\Selenium\PhantomJSDriver 这个路径),并在你的Visual Studio中安装CSQuery。

安装webdriver:

Install-Package Selenium.WebDriver

安装phantomjs:

Install-Package phantomjs.exe
0

我一直在用selenium webdriver、phantomDriver和csquery这几个工具,从Blackberry的网站上抓取数据,已经有一段时间了,直到现在都没有遇到更新的问题。

//Creating dynamic browser and download the page source code based on apipath by using selenium web driver      
driver = new PhantomJSDriver(phantomDriverPath);
//driver=new ChromeDriver(chromeDriverPath);
driver.Url = "https://appworld.blackberry.com/webstore/search/"+<search app name>+"/?lang=en&countrycode=IN";
driver.Navigate();
//Waiting for page loading
Thread.Sleep(2000);//2 seconds
if (driver.PageSource != null)
{
   //Assigning downloaded page source code to CSQuery
   CQ dom = CQ.CreateDocument(driver.PageSource);
   //Waiting for page loading
   driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
   //find the elements what ever you want based on the id,class name,tag name
   string title1 =       dom["#topListtopResultsAppTemplateHTML_listItem_0_title"].Text();
}
1

我已经在抓取黑莓网站一段时间了,之前没有遇到更新的问题。

你是从文档的根部使用绝对XPath来提取数据吗?如果你使用相对XPath,可以让你的抓取程序更强大:

//div[@id="priceArea"]/div[@class="contentLic"]

撰写回答