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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python

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

Q&A

解決済

2回答

1074閲覧

戻り値が何なのかを確認するには

time.leap

総合スコア31

Python

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

0グッド

0クリップ

投稿2021/09/14 09:33

pythonでスクレイピングの勉強をしています

import requests load_url = "http://**************.html" html = requests.get(load_url)

プログラミングの勉強をしていて、その戻り値は何なのかとか、引数には何を入れるのか
というのを掌握しておくのがすごく大事なのではないかと今さら思いたち、戻り値が何なのか引数には何をいれるのかに、執着してコードをみるようになりました

requests.get(load_url)の戻り値は何なのかをググったところ、resposeオブジェクトであることがわかりました
要するにclassか?と思い
classだから
html.text とか html.content とか変数にアクセスできるのだと理解しました。

では、

soup = BeautifulSoup(html.content, "html.parser")

BeautifulSoup(html.content, "html.parser")の戻り値はなにか、ググったところ、どうやらBeautifulSoupオブジェクトのようです

オブジェクトだから、soup.find("li")などとfindメソッドを使うことができるのだと理解しました。

このような考え方で大方間違ってないでしょうか。

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

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

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

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

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

guest

回答2

0

ベストアンサー

  • requests.get(load_url)の戻り値は何なのかをググったところ、resposeオブジェクトであることがわかりました

要するにclassか?と思い

違います。responseクラスのインスタンスです。

  • BeautifulSoup(html.content, "html.parser")の戻り値はなにか、ググったところ、どうやらBeautifulSoupオブジェクトのようです

これもBeautifulSoupクラスのインスタンスですね。

python

1html = requests.get(load_url) 2print(type(html)) 3soup = BeautifulSoup(html.content, "html.parser") 4print(type(soup))

を使ってそれぞれのオブジェクトの型(クラス)を確認しましょう。

投稿2021/09/14 10:01

ppaul

総合スコア24666

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

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

time.leap

2021/09/14 10:05

回答ありがとうございます。 オブジェクトというのは、responseクラスのインスタンスが正しいのですね。 わかってきました。感謝します ありがとうございます
guest

0

「resposeオブジェクト」と「BeautifulSoupオブジェクト」についての説明が違うように書いてあるのが気になります。

どちらも同じオブジェクトですし、オブジェクトはクラスのインスタンスです。
オブジェクトは値とメソッドを持っていて、値は「person.name」のように、メソッドは「person.call()」のようにアクセスできます。 他のインターフェースを実装してあれば、「person['name']」のようなアクセスもできたりします。

というようなことだということであれば、合っています。、

投稿2021/09/14 09:57

TakaiY

総合スコア12832

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

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

time.leap

2021/09/14 10:03

回答ありがとうございます。 オブジェクトは値とメソッドを持っているから、html.contentのように値にアクセスでき、soup.find()のようにメソッドを使えるという認識でかいていました。 「オブジェクトは値とメソッドを持っている」という言葉をわたしの中で思いおこせてなかったので、「オブジェクトは値とメソッドを持っている」という言葉を教えていただいて感謝します。 大方あっているようでよかったです。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問