2017-08-15 18 views
2

を返さない:。私は次のエラーを取得する以下のサイトを返すしようとするとrequests.getは、Webページ

「要求されたオブジェクトがこのサーバー上に存在しませんが、あなたが続いリンクは、時代遅れ不正確、またはサーバのいずれかでありますあなたにそれを持たせないように指示されている」

どんな助けでもうれしいですが、urllibで解析してみました。ブラウザにリンクを貼り付けるとうまくいくようです。

r = requests.get('https://us.spdrs.com/product/fund.seam?ticker=QCAN') 
print(r.text) 
+0

ブラウザで*リンクをもう一度*貼り付けるようにしてください。動作しないためです。あなたは同じ '404 Not Found'メッセージを受け取るでしょう。 – randomir

+0

私のために働いた.. –

+0

さて、サイトにはある程度の擦り傷防止対策が施されているかもしれません。 – randomir

答えて

1

@CuriousGeorgeによって疑わように、結果はソースIPによって異なり:

import requests 
response = requests.get('https://us.spdrs.com/product/fund.seam?ticker=QCAN') 
for r in response.history: 
    print(r.status_code, r.url) 
print(response.url) 

米国:

301 https://us.spdrs.com/product/fund.seam?ticker=QCAN 
301 https://us.spdrs.com/en/product/fund.seam?ticker=QCAN 
301 https://us.spdrs.com/product/fund.seam?ticker=QCAN 
301 https://us.spdrs.com/en/product/fund.seam?ticker=QCAN 
301 https://us.spdrs.com/etf/spdr-msci-canada-strategicfactors-etf-QCAN 
https://us.spdrs.com/en/etf/spdr-msci-canada-strategicfactors-etf-QCAN 

フランス:

301 https://us.spdrs.com/product/fund.seam?ticker=QCAN 
302 https://fr.spdrs.com/fr/product/fund.seam?ticker=QCAN 
301 https://fr.spdrs.com/product/fund.seam?ticker=QCAN 
302 https://fr.spdrs.com/fr/product/fund.seam?ticker=QCAN 
301 https://fr.spdrs.com/product/index.seam?cid=0 
https://fr.spdrs.com/fr/product/index.seam?cid=0 

カナダ:

301 https://us.spdrs.com/product/fund.seam?ticker=QCAN 
https://global.spdrs.com/product/fund.seam?ticker=QCAN 
関連する問題