簡體   English   中英

用Python提取Javascript可變對象數據和精美的Web爬取

[英]Extracting Javascript Variable Object Data in Python and Beautiful Soup Web Scraping

目前,我可以從使用請求發送的帖子請求(然后是Soup)中抓取Javascript數據。 但是我只想刮擦產品的PLU,SKU,描述和品牌。 我正在努力尋找一種方法,使我可以只打印所需的數據,而不是整個腳本。 這是我使用湯提取腳本后打印的文本。 我將在多個發帖請求中抓取不止一種產品,因此“大塊”的想法實際上並不適合。

<script type="text/javascript">
var dataObject = {

platform: 'desktop',
pageType: 'basket',
orderID: '',
pageName: 'Basket',
orderTotal: '92.99',
orderCurrency: 'GBP',
currency: 'GBP',
custEmail: '',
custId: '',
items: [

                {


                        plu: '282013',
                        sku: '653460',
                    category: 'Footwear',
                     description: 'Mayfly Lite Pinnacle Women&#039;s',
                     colour: '',
                     brand: 'Nike',
                     unitPrice: '90',
                     quantity: '1',
                     totalPrice: '90',
                     sale: 'false'
                }                                                       ]

};

如您所見,這是太多信息。

這個怎么樣:

  1. 您將捕獲的文本分配給一個新的多行字符串變量,稱為“ chunk”
  2. 列出您要尋找的鑰匙
  3. 循環瀏覽每行以檢查該行是否具有所需的術語,然后打印出該術語:

     chunk = ''' <script type="text/javascript"> var dataObject = { .........blah blah....... plu: '282013', sku: '653460', category: 'Footwear', description: 'Mayfly Lite Pinnacle Women&#039;s', colour: '', brand: 'Nike', ..... blah ....... };''' keys = ['plu', 'sku', 'description', 'brand'] for line in chunk.splitlines(): if line.split(':')[0].strip() in keys: print line.strip() 

結果:

plu: '282013',
sku: '653460',
description: 'Mayfly Lite Pinnacle Women&#039;s',
brand: 'Nike',

您顯然可以使用splitstripreplace等類似的應用程序清理結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM