2015-11-12 69 views
1

我有一個腳本,解析一個網站下載鏈接到我關注的電視節目,複製任何新劇集的鏈接,在這一點上,J-Downloader接管。Powershell - 調用Webrequest(錯誤503當通過腳本運行時)

該腳本工作得很好,直到幾天前,顯然這個網站實施了某種瀏覽器認證。 Invoke-WebRequest正在恢復的情況如下:

Invoke-WebRequest : The remote server returned an error: (503) Server Unavailable.

該網站是rapidmoviez.com。當通過腳本運行時,此基本網站或特定演出網站(例如www.rapidmoviez.com/the-walking-dead)返回空白$links

$links = invoke-webrequest -Uri "www.rapidmoviez.com/the-walking-dead" 
$links = $links.Links 

的網站加載在瀏覽器中正常,但出現在屏幕如果清空緩存「訪問Rapidmoviez之前檢查你的瀏覽器」。

我試着指定useragent標頭,如其他地方建議的那樣,但是得到了相同的結果。

$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,  like Gecko) Chrome/46.0.2490.86 Safari/537.36" 
$test = Invoke-WebRequest 'www.rapidmoviez.com' -Headers @{"User-Agent"=$useragent} -Method Get 

真的很感謝任何幫助!

+0

它有CloudFlare坐在它的前面。這往往會導致腳本的問題。 – jpmc26

+0

沒辦法繞過它?我不在乎腳本是否必須打開IE,下載頁面,然後解析本地文件。我只是不知道該怎麼做。 – smonkey12

+0

我沒有任何建議,但這並不意味着沒有一個。只是讓你知道這很可能是原因。 – jpmc26

回答

0

問題不在於您的代碼,而在於您的連接。 我只是運行這些相同的命令,並得到的結果就好:

PS> $links.count 
3269 
+1

這非常有趣。我想知道他們是否標記了我的IP或者是因爲我正在通過腳本訪問..似乎像「小魚」,但也許..奇怪的是,我能夠使用http://poshcode.org上的函數解決它/ 2498,它使用Net.WebClient對象。不像invoke-webrequest那麼幹淨,但它確實有效。謝謝! – smonkey12

+0

只是FYI。昨晚再次停止工作(使用新方法)。沒有像以前那樣連接到該網站。最後切換到msxml2.xmlhttp。 – smonkey12

+0

進一步的澄清,以防其他人發生這種情況....我以前使用過internetexplorer.application對象,但我的「身體」總是空的。 msxml2的作品(類似的代碼在這裏找到http://scriptolog.blogspot.com/2007/08/query-http-status-codes-and-headers.html)。我確實需要創建一個新對象,然後運行$ ie.navigate到我的頁面,運行msxml腳本塊和$ ie.quit。原始問題似乎並非特定於該特定連接。我使用手機熱點來檢查他們是否限制我基於MAC或IP,但得到了相同的結果(錯誤503) – smonkey12

相關問題