如何在Python中抓取Handlebar.js脚本?

时间:2020-08-05 13:53:55

标签: python selenium web-scraping handlebars.js

我正试图从拍卖网站上的汽车列表中刮除Euronorm和二氧化碳。到目前为止,我已经成功导航到正确的拍卖网页并使用Selenium下载该网页。我需要的信息是以下脚本中所有汽车的{{CO2Emission}}{{EmissionClass}}

<script id="lot-template" type="text/x-handlebars-template">
    <li data-id="{{Id}}">
        <a href="{{LotUrl}}">
            {{#if IsFollowing}}<figcaption><i class="fa fa-star"></i></figcaption>{{/if}}
            <img src="{{ImagePath}}" alt="{{LocaleName}}" />
        </a>
        <div class="list-info">
            <h3>
                <a class="car-title" href="{{LotUrl}}">{{LocaleName}}</a>
            </h3>
            <ul class="item-specs">
                <li>Objectnumber: {{Number}}</li>
                {{#if EngineSize}}
                <li>CC: {{EngineSize}}</li>{{/if}}
                <li>Fuel: {{FuelType}}</li>
                {{#if PowerKW}}
                <li>KW: {{PowerKW}}</li>{{/if}}
                {{#if CO2Emission}}
                <li>CO2: {{CO2Emission}} g/km</li>{{/if}}
                {{#if EmissionClass}}
                <li>Euronorm: {{EmissionClass}}</li>{{/if}}
                {{#if FirstInUse}}
                <li> First Registration: {{date FirstInUse}}</li>{{/if}}
                {{#if Mileage}}
                <li>Counter: {{Mileage}} {{MileageType}}</li>{{/if}}
                {{#if Location}}
                <li>Location {{Location}}</li>{{/if}}
                {{#if LicensePlate}}
                <li>License plate {{LicensePlate}}</li>{{/if}}
            </ul>
        </div>
        <div class="btnrow">
            
            {{#if HasBid}}
            <span class="extra">My bid (Excl VAT): <strong>&euro; {{BidAmount}}</strong></span>
            {{/if}}
            {{#if IsOpenForBids}}
            <a href="{{BidUrl}}" class="btn fancyboxIframe fancybox.ajax"><i class="fa fa-gavel"></i>{{#if HasBid }}Change Bid{{else}}Bid now{{/if}}</a>
            {{/if}}
            <a class="btn" href="{{LotUrl}}"><i class="fa fa-arrow-right"></i> details</a>
        </div>
    </li>
</script>

是否可以从此脚本中获取信息?我现在有些困惑,我想知道如何进行。我是网络爬虫的新手,所以我现在只是在尝试一些东西。

谢谢!

1 个答案:

答案 0 :(得分:0)

您将无法从此车把模板获取所需的信息。该模板与数据结合在一起以生成HTML,因此您有两个选择来提取所需的数据:

  • 解析使用此模板生成的HTML
  • 找到输入该模板的数据源

数据源可以是API,也可以是不需要抓取的某种形式,因此我将首先尝试,然后再尝试解析HTML。

了解您要抓取的网站/页面将很有用。