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

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

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

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

Q&A

解決済

1回答

565閲覧

HTTPステータスチェックをテキストファイルからまとめて実行したい

KohnoseLami

総合スコア17

Python 3.x

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

0グッド

0クリップ

投稿2020/05/17 14:23

前提・実現したいこと

テキストファイルに入っているURLすべてにHTTPステータスチェックをして404の場合のみのURLをテキストファイルとして出力したいです。

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

テキストファイルからURLを一行ずつ取得してリクエストをして404の時のみをテキストに出力する方法がわかりません。

該当のソースコード

Python3

1import requests 2 3r = requests.get("https://www.google.co.jp") 4r.status_code

試したこと

readlinesなどを試そうと思ったのですが間違っていると出てしまい行き詰っております。

補足情報(FW/ツールのバージョンなど)

最近Pythonを始めたばかりでまったくわからず申し訳ありません...
ぜひ、教えていただけるととても助かります。

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

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

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

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

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

Yasumichi

2020/05/17 14:27 編集

まず、ファイルの読み書きを自分なりに理解してコードを書いてから質問した方が良いと思います。 今のままでは、丸投げ質問と思われます。 7.2. ファイルを読み書きする - Python チュートリアル https://docs.python.org/ja/3.7/tutorial/inputoutput.html#reading-and-writing-files ファイルとディレクトリへのアクセス - Python 標準ライブラリ https://docs.python.org/ja/3.7/library/filesys.html
KohnoseLami

2020/05/17 14:36

ありがとうございます。 私なりにいろんなサイトを回って調べたのですがどうしてもうまいこと行かず... たしかに丸投げになってしまっていますね..本当にすみません... サイト、ありがとうございます。 読んでみてどうにかファイルの読み込みからやり直してみようと思います。 ありがとうございます。
guest

回答1

0

ベストアンサー

txt

1https://teratail.com/questions/262467 2https://teratail.com/questions/11111111 3https://teratail.com/questions/22222222

python

1import requests 2 3with open("sample.txt") as f: 4 urls = f.read().splitlines() 5 6for url in urls: 7 r = requests.get(url) 8 if r.status_code == 404: 9 print(url)

追記

404 の URL をテキストファイルに出力するなら以下になります。

python

1import requests 2 3with open("sample.txt") as f: 4 # read() でテキスト全部を読み込んで、splitlines() で改行で分割してリストとして返す。 5 urls = f.read().splitlines() 6 7urls_404 = [] 8for url in urls: 9 # requests.get() でアクセスする 10 r = requests.get(url) 11 if r.status_code == 404: 12 # 404 ならリストに追加する。 13 urls_404.append(url) 14 15with open("404.txt", "w") as f: 16 # "\n".join() でリストを改行で結合して1つの文字列にし、write() で書き込む 17 f.write("\n".join(urls_404))

投稿2020/05/17 14:30

編集2020/05/17 14:50
tiitoi

総合スコア21956

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

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

KohnoseLami

2020/05/17 14:47

丁寧な回答ありがとうございます。 送っていただいたソースコードを使わせていただいたところ動きました!本当にありがとうございます。 ただ、私自身今読み返すとほかの方に指摘された通りかなり丸投げ質問になってしまっていました...本当に申し訳ありません...
tiitoi

2020/05/17 14:52

コードにコメントをつけときました。 今回詰まっていたところはファイルの読み書きの部分だと思うので、テキストファイルの入出力の方法について調べてみるといいと思います。 https://note.nkmk.me/python-file-io-open-with/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問