Javascript 用CasperJS和PhantomJS抓取谷歌关键词工具
我目前正在尝试使用和PhantomJS(感谢n1k0和Ariya,两者都是优秀的工具)来刮取Google关键字工具,但我无法让它工作 以下是我当前的流程:Javascript 用CasperJS和PhantomJS抓取谷歌关键词工具,javascript,screen-scraping,web-scraping,phantomjs,Javascript,Screen Scraping,Web Scraping,Phantomjs,我目前正在尝试使用和PhantomJS(感谢n1k0和Ariya,两者都是优秀的工具)来刮取Google关键字工具,但我无法让它工作 以下是我当前的流程: 使用我的Google帐户登录(以避免关键字工具中出现CAPTCHA) 导航到“关键字工具”页面 填写搜索表,然后按search 我陷入了第3步:搜索表单不是一个普通的HTML表单,我不能使用Casper\fill(),所以我直接访问字段。以下是我试图更改单词或短语字段值的一些语法: this.evaluate(function() {
search
Casper\fill()
,所以我直接访问字段。以下是我试图更改单词或短语
字段值的一些语法:
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';
});
另外,我知道刮谷歌关键词工具是违反TOS的,但我想这个问题可能会引起任何试图刮去大量JavaScript/Ajax的网站的人的兴趣。我不确定这里到底发生了什么,但你用于定位的类对我来说是不同的。我假设您试图针对的
OneBoxKeywordsInputPanel输入区有第二个类,sPFB
,没有其他类。这些神秘的类可能在某种程度上是动态的。我建议改用更具描述性的类名。以下内容对我来说很好:
document.querySelector('textarea.OneBoxKeywordsInputPanel-input')
不能在文本区域上使用elt.value
。你有没有试过使用elt.textContent
。谷歌已经为我们创建了一个csv文件。
试着下载一下。链接选择器必须类似于$('.gux组合gux-dropdown-c.sJK')
您是否可以使用它自动执行操作?您可能需要等待加载和可用的文本区域。尼科,谢谢你的及时回复。我已经试过你的建议了。事实上,您在这里看到的代码包含在WaitFor()
语句中。我尝试了一个WaitForSelector('textarea.sP3.sBFB')
,还尝试了一个WaitFor()
,该函数通过\uUtils\uUtils.exists()
测试字段的存在性,但都不起作用。什么CSV文件?这只是白日梦。这样的东西就像独角兽!不存在。请去调查adwords关键字面板。这里有一个隐藏部分,您可以检索触发您的广告的所有关键字组合。这对我来说是个金矿。@Erdinççorbacı您指的是什么部分?谢谢
document.querySelector('textarea.OneBoxKeywordsInputPanel-input')
document.querySelector('textarea.sP3.sBFB').value = 'MY SUPER KEYWORDS';