🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

Q&A

解決済

1回答

734閲覧

特定の情報をスクレイピング したい

beginner-

総合スコア5

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

0グッド

0クリップ

投稿2019/12/01 12:15

### 
プログラミング初心者です。
Pythonを使ってWebスクレイピングを行うプログラムを書いています。

Arcserveというアプリケーションのバージョン情報を以下のURLサイト(後述)の、
"ARCSERVE BACKUP R17.5 FOR WINDOWS DOWNLOAD INFORMATION LIST"
から取得したいです。
具体的には、"release date","Contents","file name"カラム(蛍光ペンで囲んだ列)の情報です。

![イメージ説明

開発者ツールでHTML要素見ると、上の情報は<td>タグで囲まれているため、
soup.findAll('td')と書き、全ての<td>タグを抽出しようとしました。
しかしいざプログラムを書き実行してみると、エラーメッセージではなく、[]が出るだけで、
情報が取得できません。

findAllの部分をselectにしたり、対象のタグをclassに変えてみたりと試したのですが
うまくいかず、先に進めない状態です。
今回の場合、どのようにコードを書けば、希望の情報を抽出できるでしょうか。

非常に初歩的な質問で申し訳ないのですが、お力添え頂ければ幸いです。。

ArcserveアプリケーションURL:
https://support.arcserve.com/s/article/115001198543?language=ja
開発環境
・macOS
・python3以降
・IDEは使っておらず、テキストエディタ上でコーディングしている

コード

# -*- coding: utf-8 -*- from bs4 import BeautifulSoup import requests import sys url = "https://support.arcserve.com/s/article/115001198543?language=ja" r = requests.get(url) soup = BeautifulSoup(r.text, 'html.parser') # 入れ子要素を取得する場合は、soupの後ろに".'要素タグ'."を入れる # バージョン情報を抽出 version_elem = soup.findAll('td') print(version_elem)

エラーメッセージ

$ python Arcserve.py []

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

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

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

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

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

guest

回答1

0

ベストアンサー

r.textの中身をファイルに書いて、それを見ればわかると思いますが、tdタグは含まれていません。

requests.getで取得できるHTMLは、開発者ツールで見るHTMLじゃなくて、画面を右クリックで「ソースを見る」で見るHTMLです。これがサーバーから受け取るHTMLです。

ブラウザ画面や開発者ツールで見えるものは、それにJavaScriptが編集を加えた結果です。

JavaScriptで編集されたHTMLを処理したいときは、ブラウザをコントロールするSeleniumというライブラリを使うことが多いようです。
Teratailでも「Python + Selenium 」のタグでたくさん質問がされています。

投稿2019/12/01 13:22

otn

総合スコア85893

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

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

beginner-

2019/12/01 14:30

otnさん 迅速なご回答ありがとうございます。 「ソースを見る」と開発者ツールで見るHTMLは別物なんですね(お恥ずかしながら初めて知りました。確かにJavaScriptはWebサイト上で動作するとは聞いたことがあるので納得です。) おっしゃる通り、Seleniumに関する質問が多数ありますね。少し調べてみようと思います。
barobaro

2019/12/02 02:57

Seleniumで試してみましたが目的のテキストが見つからなかったので難しそうですね。 試しにRPAのUiPATHなら表データ取り出しできました。
beginner-

2019/12/02 14:30

barobaroさん Seleniumでトライしてみましたが、どうもうまくいかず。。 RPAでもスクレイピング ができるんですね。!並行して調べてみようと思います。
barobaro

2019/12/02 23:16

UiPATHならこちらのページで 【できるUiPath】データスクレイピングでWebページの表データを読み取ろう https://dekiru.net/article/17705/ ブラウザに表示されているものをスクレイピングするので簡単です。 表をクリックして表全体を抽出し、抽出したデータをCSVで書き出しをするだけです。
beginner-

2019/12/04 12:30

otnさん barobaroさん 回答ありがとうございました! いろいろと教えていただき非常に勉強になります。 一つずつ試し、スクレイピングを覚えていきたいと思います。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問