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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

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

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

3回答

4315閲覧

【Python】Webページのテキストボックスの値を取り出したい

myb

総合スコア10

スクレイピング

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

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

2クリップ

投稿2018/12/05 10:27

編集2018/12/05 15:27

#やりたいこと
こちらのページはURLを入力すると、HTMLを解析してタグの内容を抽出してくれるサイトです。

このページでURLを入力して、出てきた結果、つまりタイトルと本文のテキストフィールド内(htmlでいうtextarea)に書かれている内容を取り出したいのですがやり方がわかりません。
ご教授お願いします。

#ソース

html

1#import文は省略 2#前処理として、あるページのHTMLのタグの内容が欲しいので、 3#そのページのURTLを前述のサイトにおける入力文としています(cur_url)。 4 5cur_url = driver.current_url 6 7#指定urlにアクセス 8driver.get("https://tool-taro.com/wget/") 9elem = driver.find_element_by_name("value") 10 11#セレクトボックス操作、 12method_element = driver.find_element_by_name('method') 13method_select_element = Select(method_element) 14method_select_element.select_by_value('tag') 15 16#html解析実行 17elem.clear() 18elem.send_keys(cur_url) 19elem.send_keys(Keys.RETURN) 20elem = driver.find_element_by_name("result") 21 22#色々調べてやってみたのですが、以下2行実行したところ何も取り出せませんでした。 23#value = driver.find_element_by_name("result").get_attribute("value") 24value = driver.find_element_by_name("result").text 25print(value)

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

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

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

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

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

barobaro

2018/12/05 13:58

タイトルとテキストなら直接取りに行ったのではだめなのでしょうか?urlにパラメーターを送るとJSONで返ってきます。
guest

回答3

0

python

1elem.send_keys(Keys.RETURN)

だとブラウザの画面をみればわかりますが取得できていません
取得ボタンをクリックに変更すると取得できました

python

1elem = driver.find_element_by_class_name("lockable") 2elem.click()

サンプル

python

1from selenium import webdriver 2 3driver = webdriver.Firefox() 4 5url = 'https://www.yahoo.co.jp/' 6 7driver.get("https://tool-taro.com/wget/") 8 9elem = driver.find_element_by_name("value") 10elem.clear() 11elem.send_keys(url) 12 13elem = driver.find_element_by_class_name("lockable") 14elem.click() 15 16elem = driver.find_element_by_name("title") 17title = elem.get_attribute("value") 18 19print(title) 20 21elem = driver.find_element_by_name("result") 22value = elem.get_attribute("value") 23 24print(value)

投稿2018/12/06 07:53

barobaro

総合スコア1286

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

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

0

タイトルとテキストを取るだけでしたらExtractContent3でHTMLから本文を抽出することができます。

ExtractContent3
https://github.com/kanjirz50/python-extractcontent3

サンプル
https://kanji.hatenablog.jp/entry/2018/10/14/213128
https://colab.research.google.com/drive/1pBZW3azE7nmTlChvN_eu0SIikZ6hna3a

投稿2018/12/06 00:14

barobaro

総合スコア1286

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

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

0

requestsに以下のHeaderを設定するとJSONで取得できます

Url
https://tool-taro.com/kanade/service/user/wget?p=%7B%22value%22%3A%22http%3A%2F%2Fwww.yahoo.co.jp%22%2C%22method%22%3A%22line%22%7D

Header
X-Requested-With: XMLHttpRequest
Referer: https://tool-taro.com/wget/

投稿2018/12/06 00:12

barobaro

総合スコア1286

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問