2016-08-30 4 views
1

Вот код, который приводит к ошибке при каждом запуске. Моя цель состоит в том, чтобы лом содержимого из URL, удалить все HTML и вернуть его:Невозможно использовать getElementsByTagName ("body")

console.log("Fetching: " + inputData.tweeturl); 
fetch(inputData.tweeturl) 
    .then(function(res) { 
    return res.text(); 
    }).then(function(body) { 
    var rawText = body.getElementsByTagName("body")[0].innerHTML; 
    var output = { id: 100, rawHTML: body, rawText: rawText }; 
    callback(null, output); 
    }) 
    .catch(callback); 

Проблема с var rawText = body.getElementsByTagName("body")[0].innerHTML;

Ошибки я получаю это:

Bargle. We hit an error creating a run javascript. :-(Error: TypeError: body.getElementsByTagName is not a function eval (eval at (/var/task/index.js:52:23), :16:24) process._tickDomainCallback (node.js:407:9)

+0

Я не знаю 'zapier', но, похоже, из трассировки стека он просто не распознает эту функцию. Вы можете выполнить JS на стороне клиента из Node.js с помощью браузера без браузера, такого как Phantom.js, является ли zapier эквивалентом? – DrakaSAN

+0

К сожалению, среда сценариев ограничена только тем, что они предлагают. Phantom.js или любые другие пакеты npm невозможны. –

ответ

1

К сожалению - в коде нет JS DOM API в триггерах или действиях Zapier (это потому, что он не запускается в браузере и не имеет необходимых библиотек, установленных для подделки).

Вы можете посмотреть на Python и вместо этого, и https://docs.python.org/2/library/xml.etree.elementtree.html. Достойный вопрос и ответ можно найти здесь Python Requests package: Handling xml response. Удачи!

0

Любая функция, не поддерживаемая Zapier, приведет к типу TypeError. Для этого мне нужно было использовать регулярное выражение.

Смежные вопросы