VBA抓取生成的内容不在HTML源文件中

时间:2015-04-02 21:04:46

标签: javascript vba web-scraping

我已经制作了一个VBA代码来从网页上榨取一些产品价格。

我可以使它适用于我想要的所有网站,除了一个。在这个特定的网站上,价格没有显示在页面的HTML代码中,但是根据我在搜索网络时所理解的,它们是由JavaScript本地生成的。

我如何刮取这些价格?

我正在使用此方法获取页面源,然后我解析响应文本以获取我需要的信息,例如产品名称和链接,但我无法获得价格:

Set xhr = New MSXML2.XMLHTTP60

        adresa = "http://www.elefant.ro/carti/natura"
        With xhr

            .Open "GET", adresa, False
            .send

            If .readyState = 4 And .Status = 200 Then
                Set doc = New MSHTML.HTMLDocument
                corp = .responseText
            Else
                Cells(i, 2) = "error"
            End If
        End With

以下是我正在获取的网页的HTML代码的一部分,价格应为:

<div class="js_PriceContainer" style="display: none">
            <div>
                <div class="product_old_price js_oldPrice">
                    <a class="FFTracking" rel=""  href="/carti/natura/resurse-naturale/ghidul-culegatorului-de-ciuperci-211009.html"><span class="js_basePrice"></span> lei</a>
                </div>

                <div class="product_discount js_ProductDiscount">
                    <a class="FFTracking" rel=""  href="/carti/natura/resurse-naturale/ghidul-culegatorului-de-ciuperci-211009.html">(<span class="js_discount"></span>%)</a>
                </div>
            </div>

            <!-- <div class="promo_bf">
                                            <div class="product_old_price"></div>
                        <div class="product_discount"></div>
                                    </div> -->

            <div style="clear:both"></div>
            <div class="product_final_price js_FinalPriceContainer">
                <a class="FFTracking" rel=""  href="/carti/natura/resurse-naturale/ghidul-culegatorului-de-ciuperci-211009.html">
                    <span class="js_finalPrice js_promoNonBf"></span>
                    <span class="js_finalPrice js_promoBf"></span>
                </a>
            </div>
        </div>

请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:0)

在项目中导入QT WebKit并使用webkit的强大功能在抓取之前呈现网页。 This guide解释了如何在LXML剪贴板中实现webkit。