В настоящее время я пытаюсь очистить инструменты подсказки ключевых слов с помощью 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 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 против TOS, но я думаю, что этот вопрос может представлять интерес для всех, кто пытается очистить сайт JavaScript/Ajax-heavy.