Javascript 在浏览器控制台中使用java脚本和JQuery从网页获取数据
我在产品网站上有以下特定产品的链接,我如何获得产品规格数据作为对象Javascript 在浏览器控制台中使用java脚本和JQuery从网页获取数据,javascript,html,jquery,json,google-chrome,Javascript,Html,Jquery,Json,Google Chrome,我在产品网站上有以下特定产品的链接,我如何获得产品规格数据作为对象{} 我需要得到以下信息: 我在浏览器控制台中使用了下面的metgod,但它返回了大量数据: $.get("https://www.virginmegastore.ae/en/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792", function(data){ console.log(data); }); 输出为:
{}
我需要得到以下信息:
我在浏览器控制台中使用了下面的metgod,但它返回了大量数据:
$.get("https://www.virginmegastore.ae/en/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792", function(data){
console.log(data);
});
输出为:
<!DOCTYPE html>
<!--[if IE 8 ]> <html class="lt-ie9 ie8" lang="en"> <![endif]-->
<!--[if IE 9 ]> <html class="lt-ie10 ie9" lang="en"> <![endif]-->
<!--[if (gte IE 10)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->
<head>
<title>
Sonic Forces - PS4 | Playstation Games | Playstation | Gaming | Virgin Megastore</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1">
<meta name="msvalidate.01" content="D1EAD7D5C2ED626960668C0EAD15CB6A" />
<meta name="keywords" content="Project Sonic 2017,Sonic Force,SF">
<meta name="description" content="When things look their darkest, even heroes need a helping hand. For the first time in the Sonic series, players can create their own original Hero Character, and cu">
<meta name="robots" content="index,follow">
<link rel="canonical" href="https://www.virginmegastore.ae/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792"/>
<link rel="alternate" hreflang="en-AE" href="https://www.virginmegastore.ae/en"/>
<link rel="shortcut icon" type="image/x-icon" media="all" href="/_ui/responsive/theme-virgin/images/icons/favicon.ico" />
<link rel="apple-touch-icon" href="/_ui/responsive/theme-virgin/images/icons/apple-icon.png">
<link rel="apple-touch-icon" sizes="76x76" href="/_ui/responsive/theme-virgin/images/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="120x120" href="/_ui/responsive/theme-virgin/images/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="152x152" href="/_ui/responsive/theme-virgin/images/icons/apple-icon-152x152.png">
<link rel="stylesheet" type="text/css" media="all" href="/_ui/addons/assistedservicestorefront/responsive/common/css/assistedservicestorefront.css"/>
<link rel="stylesheet" type="text/css" media="all" href="/_ui/addons/assistedservicestorefront/responsive/common/css/storeFinder.css"/>
<link rel="stylesheet" type="text/css" media="all" href="/_ui/addons/assistedservicestorefront/responsive/common/css/customer360.css"/>
<link rel="stylesheet" type="text/css" media="all" href="/_ui/addons/payfortaddon/responsive/common/css/payfortaddon.css"/>
<link rel="stylesheet" type="text/css" media="all" href="//fonts.googleapis.com/css?family=Open+Sans:400,600,700,800"/>
<link rel="stylesheet" type="text/css" media="all" href="/_ui/responsive/theme-virgin/css/style.min.css?v=3.11.0"/>
<script type="text/javascript">
var mediator = (function() {
var subscribe = function(tracker, fn) {
if (!mediator.trackers[tracker])
{
mediator.trackers[tracker] = [];
}
mediator.trackers[tracker].push({context: this, callback: fn});
return this;
},
publish = function(tracker) {
if (!mediator.trackers[tracker])
{
return false;
}
var args = Array.prototype.slice.call(arguments, 1);
for (var i = 0, l = mediator.trackers[tracker].length; i < l; i++)
{
var subscription = mediator.trackers[tracker][i];
subscription.callback.apply(subscription.context, args);
}
return this;
},
publishAll = function() {
if (Object.keys(mediator.trackers).length === 0)
{
return false;
}
for (var tracker in mediator.trackers)
{
var args = [tracker].concat(Array.prototype.slice.call(arguments));
mediator.publish.apply(this, args);
}
return this;
};
return {
trackers: {},
publish: publish,
publishAll: publishAll,
subscribe: subscribe
}
})()
</script><!-- Google Tag Manager -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NMB22J" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NMB22J');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager Data Layer -->
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'ecommerce': {
'detail': {
'products': [{
'id': '714792',
'name': "Sonic Forces - PS4",
'brand': 'SEGA',
'price': '99.0',
'category': 'Playstation Games',
'variant':
''
}]
}
}
})
;
window.dataLayer.push
的json字符串json.Parse()
解析json字符串productDetails
是一个完整的js对象
$.get(“https://www.virginmegastore.ae/en/gaming/playstation/playstation-games/sonic-forces---ps4/p/714792,函数(数据){
var productDetailsJson=data.match(/window\.dataLayer\.push[^(]*\([^]*)\)/)[1];
var productDetails=JSON.parse(productDetailsJson.replace(/'/g',“');
console.log(productDetails);
});
更容易避免字符串化,console将通过这种方式为您很好地输出数据console.log(数据)
或对于(让项进入数据){console.log('item',data,'data[item]',data[item])}
您使用DOM并从中提取特定的块,对于每个块您可以提取属性。您还可以检查XPATH是什么,是的,但是分布在html元素之间的数据,是否有任何方法可以通过一个选择器获取所有这些元素?@Ron
**'products': [{
'id': '714792',
'name': "Sonic Forces - PS4",
'brand': 'SEGA',
'price': '99.0',
'category': 'Playstation Games',
'variant':
''
}]**