簡體   English   中英

為什么diffbot在這里看不到價格?

[英]Why doesn't diffbot see the price here?

我正在使用 diffbot 來抓取產品。 它在大多數網站上都能解決問題,如果沒有,自定義 API 通常允許我輕松調整,直到正確為止。 然而,有幾個案例讓我感到困惑。

我知道 diffbot 不會在自定義 API 預覽窗口中執行 javascript,但對於product端點,它應該始終在向 API 發出請求時執行它(例如,來自 Python shell 中的 diffbot 客戶端)。

足部庇護

對於本網站上的產品,例如https://www.footasylum.com/hugo-boss-three-pack-tshirt-103678/offerPrice字段為空。 我可以看到價格在div#priceFrm ,因此我嘗試在該字段上編輯並添加自定義選擇器以實現此效果。 但是,即使從 Python shell 進行新的 API 調用,響應也是'offerPrice': ''

這個價格顯然是由 Javascript 添加的,但為什么 diffbot 不能處理呢? 我該怎么辦?

我還可以在<script>中的一些 JSON 數據中看到我想要的價格。 通常我可以從那里抓取它,使用//script[contains(text(), "dataLayer")]/text()后跟一個正則表達式。 但是,在另一個 diffbot 自定義字段中,我定義了一個選擇器script:contains(dataLayer)甚至這是空白的。

關於使用 diffbot 從該產品中獲取價格的任何想法?

耐克

我也試圖從https://www.nike.com/gb/t/flyknit-trainer-shoe-GBXjsV/AH8396-600獲取價格

第一個問題是自定義API的預覽窗口奇怪地給出了500錯誤。

接下來,我使用div[data-test=product-price]的自定義選擇器編輯offerPrice字段,但是該字段沒有命中任何內容 - 即使在 Python shell 中從客戶端調用時也是如此。

儲物櫃

最后在這個網站上https://www.footlocker.co.uk/en/p/jordan-1-flight-2-men-shoes-6671?v=314100340604#!searchCategory=all diffbot 似乎無法獲得產品圖片。

圖片由“scene7”加載,用XPATH可以找到//div[@class="s7thumb"][@data-namespace="s7classic"]/@style然后解析出“background-url” .

我嘗試使用選擇器div.s7thumb div[data-namespace=s7classic]至少通過 diffbot 獲取樣式屬性,然后添加屬性過濾器“樣式”,但同樣沒有返回任何內容。

在某些情況下,某些元素的特定渲染將被 Diffbot 的渲染器或目標站點的反阻止措施阻止。 這就是 Diffbot 具有X-eval功能的原因,它允許您將自定義 JavaScript 添加到將在目標站點上執行的調用中,就像從控制台運行一樣。 在這種情況下,類似以下內容會有所幫助:

function() {
    start();
    setTimeout(function() {
        price = document.querySelector("[itemprop="
            Offers "] [itemprop="
            price "]");
        currency = document.querySelector("[itemprop="
            Offers "] [itemprop="
            priceCurrency "]").getAttribute("content");
        price.parentElement.setAttribute("style", "");
        price.parentElement.innerHTML += '<h1 class="thePrice">' + price.innerText + " " + currency + '</h1>';
        setTimeout(function() {
            end();
        }, 500);
    }, 500);
}

這已被用作修復,現在價格返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM