Python中的Javascript与Web漂亮对象数据的提取

2024-04-20 12:29:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在可以从使用requests then Soup发送的post请求中获取Javascript数据。但我只想略过产品plu、sku、描述和品牌。我正在努力寻找一种方法,让我只打印我需要的数据,而不是整个脚本。这是我用soup提取脚本后打印的文本。我将从多个post请求中抓取多个产品,因此块的想法并不太合适。在

<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'
                }                                                       ]

};

正如你所看到的,这是太多的信息。在


Tags: 数据方法文本脚本产品javascriptpostrequests
1条回答
网友
1楼 · 发布于 2024-04-20 12:29:25

这个怎么样:

  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()
    

结果:

^{pr2}$

显然可以使用splitstripreplace等类似的应用程序清理结果

相关问题 更多 >