2017-01-30 18 views
1

我已經下載PhantomJS,因爲我需要創建Google Alert RSS提要,並且它們不提供API。PhantomJS爲什麼顯示舊版Google快訊?

我注意到,被訪問的URL的渲染圖像是舊的,因此,找不到頁面的元素來執行所需的操作,比如更改「傳遞到」成爲「RSS」...

這是什麼?錯誤?一個網站如何與通過瀏覽器訪問不同?

我的腳本:

var page = require('webpage').create(), 
    isLoaded, 
    controller, 
    isSubmitted = false 

page.open('https://www.google.com/alerts', function() { 
    page.viewportSize = { width: 1920, height: 1080 } 
    page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36' 

    isLoaded = true 
}) 

page.onLoadStarted = function() { 
    log('Loading page...') 
} 

page.onLoadFinished = function(status) { 
    log('Page has loaded.') 

    if (status !== 'success') { 
    log('The page has failed to load.') 
    exit() 
    } else { 
    if (isSubmitted) { 
     log('Submitted!') 
     clear() 
     exit() 
    } else { 
     controller = setInterval(function() { 
     if (isLoaded) { 
      isLoaded = false 
      fillUpInputField('input', 'PhantomJS') 
     } else { 
      selectRSSOption() 
     } 
     }, 7000) 
    } 
    } 
} 

function exit() { 
    phantom.exit() 
} 

function log(str) { 
    console.log(str) 
} 

function render(name) { 
    page.render(name + '.png') 
} 

function fillUpInputField(selector, query) { 
    page.evaluate(function(selector) { 
    document.querySelector(selector).focus() 
    }, selector) 
    page.sendEvent('keypress', query) 

    render('fill_up_form.png') 
    log('Rendered fill_up_form.png') 
} 

function selectRSSOption() { 
    page.evaluate(function() { 
    document.querySelector('.show_options').click() 
    }) 

    render('show_options.png') 
    log('Rendered show_options.png') 
} 
+0

嘗試將用戶代理字符串替換爲不同的瀏覽器。 – qqilihq

+0

請顯示您的腳本。 – Vaviloff

+0

@Vaviloff補充說。 – mfgabriel92

回答

0

你需要欺騙瀏覽器的用戶代理,因爲默認情況下,谷歌對待PhantomJS作爲一個大的移動瀏覽器(也因爲小默認視口的)。嘗試使用Firefox,Chrome或Edge的現代版本。

var page = require('webpage').create(); 

page.viewportSize = { width: 1280, height: 800 }; 
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36'; 
+0

呈現的圖像沒有任何更改,但仍顯示舊的Google快訊網站。我已經複製了整個字符串,也只是將Chrome和當前版本。 – mfgabriel92

+0

我可能做錯了什麼? – mfgabriel92