Я начинаю немного сходить с ума здесь, поэтому, надеюсь, кто-то там может помочь. Я пытаюсь использовать import.io, чтобы получить название и цену продукта с торгового сайта. В частности, я тестирую этот URL: http://www.roddandgunn.com/clothing/knitwear/Urquhart%20Peak%20Knit/Urquhart-Peak-Knit.html

Однако я не могу заставить import.io опубликовать API, который на данный момент получает только название продукта. Я вручную переопределил XPath, javascript отключен для страницы, но каждый раз, когда я пытаюсь опубликовать, я получаю сообщение об ошибке «API не удалось опубликовать».

Это текст, который появляется, когда я отображаю JSON:

{
    "offset": 0,
    "connectorGuid": "023f6433-7553-4d17-8036-924c9434c7ba",
    "results": [
        {
            "clothing_name": "Westown Wool Coat"
        }
    ],
    "title": "Rodd & Gunn | Authentic Range - Westown Wool Coat",
    "pageUrl": "http://www.roddandgunn.com/authentic-range/Westown%20Wool%20Coat/Westown-Wool-Coat.html"
}

(Правая сторона):

{
    "extraction": {
        "resultPipeline": [
            {
                "configuration": {
                    "property": "clothing_name",
                    "xpaths": [
                        "//h1[@itemprop='name']"
                    ]
                }
            }
        ],
        "resultXPaths": [
            "/html/body"
        ]
    },
    "urlProperties": [],
    "version": 4,
    "playback": {
        "fixHtml": true,
        "url": "${webpage/url}"
        }
}

Я не знаю, как я могу упростить его еще больше, и поэтому я не уверен, почему он отказывается позволить мне опубликовать API для него. У кого-нибудь есть идеи ?

2
Michael 19 Июл 2015 в 08:32

2 ответа

Серверы import.io расположены в США, что означает, что они используют американские IP-адреса.

Почему это важно?

Если вы подключаетесь к URL-адресу через прокси-службу США (чтобы отразить то, что делает import.io при публикации), отображаемый веб-сайт отличается, import.io перенаправляется и не может видеть ваши данные!

Исправить это довольно просто (после копания на сайте и игры с несколькими прокси)

Вы можете указать серверу отображать правильную версию веб-сайта, добавив следующее в конец URL-адреса:

isams=setsite&wsid=2

Например: http://www.roddandgunn.com/clothing/knitwear/Urquhart%20Peak%20Knit/Urquhart-Peak-Knit.html?isams=setsite&wsid=2

Он публикует! https://import.io/data/mine/?id=ae62a9b1-5adb-438e-a17b-78d528a1cde2

Если вы хотите передать больше URL-адресов через экстрактор, вам нужно добавить isams=setsite&wsid=2 к другим URL-адресам, которые вы хотите извлечь.

1
Bam4d 3 Авг 2015 в 12:11

Вы можете включить Javascript на странице во время обучения вашего экстрактора. В разделе Определить оптимальные настройки выберите Нет, а затем Да.

Из Определить оптимальные настройки:

Обнаружение оптимальных настроек изменит настройки браузера, предварительно отключив файлы cookie и JavaScript, чтобы у системы было больше шансов извлечь данные.

0
Jigno Alfred Venezuela 21 Июл 2015 в 05:16
Я ценю ответ, но я не верю, что он правильный. Включение Javascript не решает проблему и, похоже, противоречит рекомендациям по страница часто задаваемых вопросов по проблемам тайм-аута, на которой предлагается отключить Javascript.
 – 
Michael
21 Июл 2015 в 12:14