如何使用 stringByEvaluatingJavaScriptFromString 在亚马逊上获取 ASIN 代码?

Posted

技术标签:

【中文标题】如何使用 stringByEvaluatingJavaScriptFromString 在亚马逊上获取 ASIN 代码?【英文标题】:How to get ASIN code on Amazon using stringByEvaluatingJavaScriptFromString? 【发布时间】:2015-09-15 08:25:12 【问题描述】:

我无法使用 stringByEvaluatingjavascriptFromString 从亚马逊获取 ASIN。

“document.title”正在工作,但“document.getElementById”不工作。

我在 Chrome javascript 控制台上检查了我的 javascript 代码,它工作正常,但它在 iPhone 模拟器和真正的 iPhone 上不起作用。

有什么错误吗?[亚马逊网站]http://www.amazon.com/dp/1927925576/[.m 文件]

-(void)getAmazonASIN:(id)sender 

    // get Title: Working
    NSString* amazonItemTitle = [self.AFFWEB stringByEvaluatingJavaScriptFromString:@"document.title;"];
    NSLog(@"document.title: %@", amazonItemTitle);

    // get ASIN: Not Working
    NSString* amazonJavascript = @"document.getElementById('ASIN').value";
    NSString* amazonItemASIN = [self.AFFWEB stringByEvaluatingJavaScriptFromString:amazonJavascript];
    NSLog(@"ASIN: %@", amazonItemASIN);

    NSString* amazonJavascript2 = @"document.getElementById(\"ASIN\").value";                                                               
    NSString* amazonItemASIN2 = [self.AFFWEB stringByEvaluatingJavaScriptFromString:amazonJavascript2];
    NSLog(@"ASIN2: %@", amazonItemASIN2);

[日志]

2015-09-15 00:50:03.857 AmazonASIN [32315:6669048] document.title: Persona 4 Volume 1 (Persona 4 Gn)
2015-09-15 00:50:03.859 AmazonASIN [32315:6669048] ASIN: 
2015-09-15 00:50:03.860 AmazonASIN [32315:6669048] ASIN2: 

[Chrome javascript 控制台]

>document.getElementById('ASIN').value
>"1927925576"

【问题讨论】:

【参考方案1】:

iPhone加载亚马逊网站后,跳转到亚马逊移动网站如下: http://www.amazon.com/dp/1927925576/ -> http://www.amazon.com/dp/1927925576/ref=cm_sw_su_dp

在此页面上,来源显示 ASIN 是“asin”,而不是大写字母..

document.getElementById(“asin").value

谢谢!

【讨论】:

以上是关于如何使用 stringByEvaluatingJavaScriptFromString 在亚马逊上获取 ASIN 代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?