Javascript 用CasperJS和PhantomJS抓取谷歌关键词工具

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() {

我目前正在尝试使用和PhantomJS(感谢n1k0和Ariya,两者都是优秀的工具)来刮取Google关键字工具,但我无法让它工作

以下是我当前的流程:

  • 使用我的Google帐户登录(以避免关键字工具中出现CAPTCHA)
  • 导航到“关键字工具”页面
  • 填写搜索表,然后按
    search
  • 我陷入了第3步:搜索表单不是一个普通的HTML表单,我不能使用
    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';