在Python中提取Javascript变量对象数据和Web抓取

在Python中提取Javascript变量对象数据和Web抓取,javascript,python,beautifulsoup,python-requests,Javascript,Python,Beautifulsoup,Python Requests,目前,我可以使用requests-then-Soup从发送的post请求中提取Javascript数据。但我只想刮产品plu,sku,描述和品牌。我正在努力寻找一种方法,我可以只打印我需要的数据,而不是整个脚本。这是我使用soup提取脚本后打印的文本。我将从多个post请求中删除多个产品,因此区块的想法并不真正合适 <script type="text/javascript"> var dataObject = { platform: 'desktop', pageType: 'b

目前,我可以使用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'
                }                                                       ]

};
正如你所见,这是太多的信息

这个怎么样:

将捕获的文本分配给名为chunk的新多行字符串变量 列出你要找的钥匙清单 在每行上循环检查该行是否有您想要的术语,然后打印该术语:

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

显然,您可以使用类似的split、strip、replace等应用程序来清理结果。

这确实有效,但我将提取多个产品,以便更改名称等。如果这在你的术语中有意义的话,那么名字是我的钥匙列表中的一个钥匙吗?或者每个键的冒号后面的文本?我可以发送完整的脚本给您看看吗?可能会帮助您了解问题所在。谢谢你的帮助!
plu: '282013',
sku: '653460',
description: 'Mayfly Lite Pinnacle Women&#039;s',
brand: 'Nike',