1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

40 代おっさんPythonでブラウザ操作してみる

Last updated at Posted at 2022-03-03

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

参考資料

https://www.udemy.com/course/python-kaizen/learn/lecture/26849736#overview

環境

以前はCloud9を使用していましたが
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください

目的

Webページにアクセスして必要なファイルを取ってくる
そして自分の指定フォルダに移動する。

Webページを操作

必要なライブラリ

seleniumとは
Webブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリ

!pip install selenium

webdriver_managerとは
Webブラウザのバージョンに合わせて適切なドライバを自動的にダウンロードしてくれる

!pip install webdriver_manager

インポート

from selenium import webdriver

seleniumの機能からwebdriverの一部の機能を使うと意味になる

もう一つ

from webdriver_manager.chrome import ChromeDriverManager

これはブラウザ使うのにドライバーが必要になるのでChromeDriverが必要になるため
また時間たってバージョンが変わってもそれを合わせるため

ブラウザを立ち上げる

browser=webdriver.Chrome(ChromeDriverManager().install())

これでブラウザが立ち上がったと思います。

Webページにアクセス

試しにyahooにアクセス

browser.get("https://www.yahoo.co.jp/")

Webページを操作する

yahooの検索欄に自動で検索を行う

ポイント
・HTMLソースコードを把握して必要な個所を操作

今回は検索欄なのでそこのコードを確認
name=pだとわかったので

box=browser.get("https://www.yahoo.co.jp/")

変数に代入して
boxに調べる文字を入力する

box.send_keys("python")

今度は検索ボタンを押したいと思います

検索ボタンは
classにより構成されており、classは他の所にも使われている可能性があるのでXpathをコピー

search_button=browser.find_element_by_xpath("/html/body/div/div[1]/header/section[1]/div/form/fieldset/span/button")

search_buttonにボタンの情報を入れて

search_button.click()

これでブラウザの操作ができました。

ブラウザを閉じる

browser.close()

これで閉じると思います。

ファイルを取ってくる

適当なファイルをダウンロードできるサイトを選んでください
(自分は厚生労働省のサイトを選べました)

ではそこまでアクセスします

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

browser=webdriver.Chrome(ChromeDriverManager().install())
browser.get("https://www.mhlw.go.jp/stf/covid-19/open-data.html")

そこにあるファイル(自分の場合はPCR検査実施人数)は
クリックしてダウンロードできる仕組みになっているので

pcr = browser.find_element_by_xpath("/html/body/div[1]/main/div[2]/div/div/div[3]/div/p/a")
pcr.click()

ファイルを操作してみる

globとは
glob関数を使うことで特定のパターンにマッチするファイルを取得することができます

インポート

from glob import glob

ファイル情報を取得

先ほどのファイルはダウンロード先にあるので
ダウンロードの中身を取得

glob(r"\Users\ファルダの名前\Downloads/*")

rは文字列として扱う(Windowsの人は必要みたいです)
*(アスタリスク)ワイルドカードといってすべてをさす
もし捜索範囲を狭めたい場合などは拡張子をつけるといいと思います。

glob(r"\Users\ファルダの名前\Downloads/*.csv")

ダウンロードが新しい物を選別できるようにする

ダウンロードに入っているファイル情報を変数に格納

files=glob(r"\Users\ファルダの名前\Downloads/*")

os操作するため
osをインポート

import os

そして
sorted関数を使用

構文

sorted(リストなど [,key] [,reverse])

⚫︎ リストなど
(ソート、リスト、辞書、タプルなどのシーケンス)
⚫︎ key
順序を決定するために実行する関数
(デフォルトはなし)
⚫︎ reverse
ブール値となり、falseは昇順で並べ替え、trueは降順で並べ替えられる
(デフォルトはfalse)

sorted情報を変数に格納

sorted_files=sorted(files,key=os.path.getmtime)

最期のファイルを指定する。

sorted_files[-1]

指定したファイルを移動する

import shutil
shutil.move(sorted_files[-1],os.getcwd())

shutil
モジュールはファイルやファイルの集まりに対する高水準の操作方法を多数提供します。特にファイルのコピーや削除のための関数が用意されています

さきほど指定した(一番最近にダウンロードしたファイル)を自分の今使っているファイルに移動させました

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?