質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3011閲覧

httplib2で、リダイレクト先のURLが表示されない

sakageUN

総合スコア27

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/06/09 12:00

###前提・実現したいこと

  • httplib2を利用して、事前にファイルに格納しておいたURLを順番に読み込んで、内容を返すプログラムを作成しています。
  • もしもURLがリダイレクトされている場合は、リダイレクト先のURLを読み込んで内容を返してほしいです。

###発生している問題・エラーメッセージ

  • ブラウザでアクセスするとリダイレクトされているURLが、httplib2を使ってアクセスするとリダイレクトしてくれません。
  • ステータスコードを確認すると、200を返してきます。

以下の通りにリダイレクトして内容を取得してほしいです。

現状では、古いアドレスにアクセスして、リダイレクトせずにそのまま200が返ってきてしまうのです...
###該当のソースコード

python

1import httplib2 2http = httplib2.Http(cache='tmp/.cache', timeout=3) 3url_lists = ["http://wc2014.2ch.net/2chse/", "http://maguro.2ch.net/lang8/"] 4 5for i in url_lists: 6 response, content = http.request(i) 7 status = response.status 8 try: 9 if status != 200 and status != 302 and status != 304: 10 raise httplib2.HttpLib2Error 11 except (httplib2.RelativeURIError, httplib2.ServerNotFoundError, httplib2.HttpLib2Error): 12 print("エラー") 13 else: 14 print(status) 15 print(response['content-location'])

実行結果

200 http://wc2014.2ch.net/2chse/ 200 http://maguro.2ch.net/lang8/

###試したこと

  • 本家のドキュメントを見たり、ググったりしましたがさっぱりでした...

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

提示されたページは

html

1<script language="javascript">window.location.href="http://rio2016.2ch.net/2chse/"</script>

のようにjavascriptでリダイレクトが実現されています。
このようなページは、内部で'javascript'を解釈・実行できるseleniumなどのブラウザ同等の機能を持つモジュールでないとリダイレクトできないようです。

参考:Python Get Redirect URL with Javascript

投稿2017/06/12 09:48

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakageUN

2017/06/12 13:07

ご指摘の通り、selenium+phantomjsでアクセスしてみたところ、とりあえずは拾うことができました。 ただ、比べ物にならないくらい遅いですね...945個の板のリダイレクト先を調査するのに2時間半かかりましたw ご回答誠にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問