興味のあるサイトについて言及している以前の質問へのリンクを提供しました。
http://www.vodafone.de/privat/tarife/red-smartphone-tarife.html
あなたはただコードを見る必要があります。
プランとして「RedM」を選択し、「Samsung Galaxy SIII Blau(Blue)/16GB」を選択するとします。下部のセクションには次のように表示されます。
詳細項目
Einmalige Kosten(1回限りの費用)
- Anschlusspreis(アクティベーション料金):29.99
Einmalzahlung(一括払い)スマートフォン:9.90
Monatliche Kosten(月額料金)
レッドM59.99
- 24 x 10%Rabatt(割引)-6.00
24x5ユーロスマートフォン-Rabatt-5.00
また、学生、若者、または障害者のために、3つの10.00/月割引の1つを利用できます。
これらのJavaScript割り当てを(おそらくPythonのJSONモジュールを使用して)解析する必要があります。
window.phones
window.rates
window.discounts
window.goodies
window.promotions
データ構造について説明します。コードは自分で作成する必要があります。
windows.phones
、このエントリが含まれています(この例を維持):
window.phones = {
sku1224225:{
name:"Samsung Galaxy SIII Blau 16 GB",
image:"/images/m1057472_300599.jpg",
deliveryTime:"Lieferbar innerhalb 48 Stunden",
sku1444275:{p:"prod1334441",e:"49.90"}, // "Vodafone Red S"
sku1444283:{p:"prod1334441",e:"9.90"}, // "Vodafone Red M"
sku1444291:{p:"prod1334441",e:"9.90"}, // "Vodafone Red Premium"
sku1444286:{p:"prod1334441",e:"9.90"}, // "Vodafone Red L"
sku1104261:{p:"prod1334441",e:"99.90"} // "Vodafone Basic 100"
},
// . . .
}
プラン名を表示するコメントを追加しました。
ここに詳細項目2があります。
ここにリストされているSKUは、で定義されているプランサブSKUwindow.rates
です。「RedM」には次のものがあります。
window.rates = {
sku1444279:{
label:"Vodafone Red M",
propId:"prod1564453",
subsku:{
sku1444283:{ // "Samsung Galaxy SIII Blau 16 GB", etc.
monthlyChargest:"59.99",
activationCharge:"29.99",
discounts:[
"sku140988", // "Ich bin 18-25 Jahre jung" (-10)
"sku140989", // "Ich habe einen Schwerbehindertenausweis" (-10)
"sku140990" // "Ich bin Student und jünger als 30" (-10)
],
promotions:["27"], // "24 x 5 Euro Smartphone-Rabatt" (-5)
Goodies:[
"prod1674486" // "24 x 10 % Rabatt" (-6)
]
},
// more subskus here . . .
}
},
// . . .
}
ここでも、リンクトデータにコメントを追加しました。多くのデバイスが同じサブスクにリンクできることに注意してください。
詳細項目1と3、および項目4、5、6へのリンクが表示されます。
Goodies
windows.goodies
経由prod
番号へのリンク:
window.goodies = {
prod1674486:{
SkuId:"prod1674486",
Name:"24 x 10 % Rabatt",
Value:"-6",
Type:"absolute",
DurationInMonth:"24"
},
// . . .
}
これで詳細項目4が得られます。
window.rates
また、のリストをwindows.promotions
介してリンクします。subsku
promotions
window.promotions = {
27:{
promotionId:"27",
promotionName:"24 x 5 Euro Smartphone-Rabatt",
promotionValue:"-5",
Type:"absolute",
duration_in_months:"24",
deeplinkParameter:""
},
// . . .
}
これで詳細項目5が得られます。
windows.discounts
詳細アイテム6の特別割引が含まれています。
window.discounts = {
sku140988:{
SkuId:"sku140988",
Name:"Ich bin 18-25 Jahre jung",
Type:"absolute",
DurationInMonth:"24",
Value:{
sku1444295:"-10", // "Vodafone Red Premium"
sku1444279:"-10", // "Vodafone Red M"
sku1444290:"-20"} // "Vodafone Red L"
},
sku140989:{
SkuId:"sku140989",
Name:"Ich habe einen Schwerbehindertenausweis",
Type:"absolute",
DurationInMonth:"24",
Value:{
sku1444295:"-10", // "Vodafone Red Premium"
sku1444279:"-10", // "Vodafone Red M"
sku1444290:"-20"} // "Vodafone Red L"
},
sku140990:{
SkuId:"sku140990",
Name:"Ich bin Student und jünger als 30",
Type:"absolute",
DurationInMonth:"24",
Value:{
sku1444295:"-10", // "Vodafone Red Premium"
sku1444279:"-10", // "Vodafone Red M"
sku1444290:"-20"} // "Vodafone Red L"
}
};
適切な割引額は、プランの主要なSKUによって選択されます(以下にリストされているSKUを介してvalue
)。
以上です。これらの5つのオブジェクトをPythonオブジェクトに解析するだけで、必要なすべてのデータが得られます。