繁体   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