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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

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

Q&A

解決済

1回答

223閲覧

[python]テキストファイル記載されたURLリストのスクリーンショットを撮りたい

so-ra-ta

総合スコア1

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

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

0グッド

0クリップ

投稿2022/09/20 05:11

編集2022/09/21 09:36

はじめてお世話になります。不慣れな点もあるかと思いますが、よろしくお願いいたします。

前提

pythonでテキストファイルを読み込み、記載されたURLリストのスクリーンショットを撮って保存したいのですが
指定されたURLを繰り返し表示することはできたのですが、スクリーンショットが最後の行しか保存されません。

#キャプチャ自動保存 ファイル名をURLにする from selenium import webdriver import chromedriver_binary import time f = open('URL-list.txt', 'r', encoding='UTF-8') datalist = f.readlines() f.close() i = 0 for data in datalist: #指定のURLを取得 u = (datalist[i]) #以下ファイル保存名のための準備 #URLの"."を抜き"/"は"-"にする new_u1 = u.replace('.', '') new_u = new_u1.replace('/', '-') # 「https:// 」の後ろにあるだけを抽出したい target = 'https://' idx = new_u.find(target) r = new_u[idx+len(target): ] # http://以下 ~ 最期まで #webブラウザを取得 driver = webdriver.Chrome() #スクリーンショット #変数uから取得したURLをドライバがゲットする driver.get(u) # Set image(window) size driver.set_window_size(1920, 1080) # スクリーンショット保存 driver.save_screenshot(r + '.png') # ドライバを閉じる driver.quit() i = i + 1 #テキストファイルのリストに1追加  

試したこと

スクリーンショット以外の繰り返し処理はできていました。

リスト化せず、ひとつづつURLを指定した場合は、スクリーンショット保存されました。

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

開発環境は vscode
python3 です。

URL-list.txtファイルは以下の内容-----------
https://google.com
https://www.yahoo.co.jp
https://teratail.com

よろしくお願いいたします。

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

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

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

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

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

meg_

2022/09/20 11:03 編集

> スクリーンショットが最後の行しか保存されません。 上書きしていませんか? ⇒ 上書きはされていないようですね。失礼しました。
guest

回答1

0

ベストアンサー

テキストファイルの最後の行以外は末尾に改行が含まれますので、それを取り除きます。

diff

1+ u = (datalist[i]) 2- u = (datalist[i]).strip()

投稿2022/09/20 12:20

meg_

総合スコア10577

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

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

so-ra-ta

2022/09/21 00:36

できました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問