このページの概要
Webスクレイピングをするとき、Webシステム上のボタンを押したり、テキストボックスに値を入力したり、テキストを取得したりすとき、必ず操作の対象となる要素(Element)を指定する必要があります。このページでは要素を特定するための「name」という文字列をGoogleChrome(以下chrome)で取得する方法を説明します。
nameの使いどころ
「name」は「id」と同じように要素に与えられる名前ですが、idと違い要素同士の重複が認められています。「id」も「name」もつけられている要素は原則「id」を指定しておけば間違いありません。しかし「id」は設定されていないが「name」は指定されているということはWebシステムなどでよくあります。「name」は重複が許されているため単独では要素を特定することはできません。そのため名前に加えて何番目の要素であるかをあわせて指定する必要があります。
操作対象のページをchromeで開く
このページの解説では操作対象の例として当サイトのトップページにある関数リファレンスを使用します(https://funcref.com/)。
「検証」画面を開きます
開き方は2つあります。Webシステムでは右クリック禁止という場合もありますが、基本どちらかで検証画面を開くことはできるかと思います。
①「右クリック」⇒「検証」
②「Ctrl」+「Shift」+「I」
開くと下記のような画面になります。ウインドウの幅によって見た目が違うことはあると思いますが、ページ右側に「検証」画面が表示されます。
調べたい要素をクリックする
上記ボタンが青くなっている状態のまま、サイトの任意の場所をクリックします。このページの解説では、関数選択のプルダウンを選択後に関数のコードが表示されるエリアをクリックしました。すると「検証」画面の表示が変化し、クリックした場所を示すHTMLの該当箇所が青背景で強調表示されます。
↓
強調表示された中から「name」をコピーする
「name=”〇〇”」となってる部分にカーソルを合わせダブルクリックします。すると下記のような表示となるためそのままコピーします。
「name」が見つからない場合
「▶」マークをクリックして要素を展開してみてください。隠れている可能性があります。ただしそれでも「name」が見つからない場合があります。IEでのスクレイピングでは「id」に次ぐ利用率だった「name」ですが(※私調べ)、都合よく操作対象のすべてに「name」が設定されているとは限りません。ない場合も多くあります。その場合は、他の方法で要素を指定するしかないと諦めましょう。代替品のおすすめは「XPath」です。
【結果】「name」を取得することができました
上記の例では「paste」という「name」を取得することができました。
業務用PCでスクレイピングするなら「LesserScraping」
業務用PCでExcelVBA(マクロ)からWebスクレイピングをしようとすると「Selenium Basic」の導入でつまずく方は多いです。当サイトでは劣化版Selenium Basicと呼べる「Lesser Scraping」を開発し無償で公開しています。
Comment