Я сейчас пытаюсь очистить Google Keyword Tools с помощью CasperJS и PhantomJS (оба отличных инструмента, спасибо n1k0 и Ariya), но я не могу заставить его работать.
Вот мой текущий процесс:
- Войдите в систему с моей учетной записью Google (чтобы избежать использования капч в инструментах подсказки ключевых слов).
- Перейдите на страницу инструментов подсказки ключевых слов.
- Заполните форму поиска и нажмите
Search
.
Я застрял на шаге 3: форма поиска не является обычной HTML-формой, я не могу использовать Casper#fill()
, поэтому вместо этого я получаю прямой доступ к полям. Вот некоторые из синтаксисов, которые я пытался изменить в поле Word or phrase
:
this.evaluate(function() {
// Trying to change the value...
document.querySelector('textarea.sP3.sBFB').value = 'MY SUPER KEYWORDS';
document.querySelector('textarea.sP3.sBFB').setAttribute('value', 'MY SUPER KEYWORDS');
document.querySelector('textarea').value = 'MY SUPER KEYWORDS'; // there's only one <textarea> on the page
// Trying to change other attributes...
document.querySelector('textarea.sP3.sBFB').textContent = 'MY SUPER KEYWORDS';
document.querySelector('textarea').style.backgroundColor = 'yellow';
});
Ничего не работает. Я делаю Casper#capture()
сразу после того, как посмотреть, что содержит поле. Как вы можете видеть , это подтверждает, что я нахожусь на правильной странице и что я вошел в систему, но <textarea>
пусто.
Странно, но я могу получить доступ к другим частям DOM: я мог бы изменить текст ссылки с Advanced Options and Filters
на ___VINCE SAYS HELLO___
(см. Захват), выполнив следующие действия:
this.evaluate(function() {
document.querySelector('a.sLAB').textContent = '___VINCE SAYS HELLO___';
});
PS. Я знаю, что утилита Google Keyword Tools не подходит для TOS, но я думаю, что этот вопрос может быть интересен всем, кто пытается очистить JavaScript / Ajax-сайт.