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

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

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

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

Python

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

Q&A

解決済

3回答

525閲覧

python スクレイピングの超初歩について

eqeqe

総合スコア15

スクレイピング

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

Python

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

0グッド

0クリップ

投稿2021/06/08 18:50

python スクレイピングに挑戦しようと思ってまず基礎から覚えようとサイトを見て書いてみたんですが

import requests
from bs4 import BeautifulSoup

url = 'https://www.yahoo.co.jp/'

response = requests.get(url)

response.text

と書いても、全く反応しません。。。その参考サイトではYAHOOさん内のデータが表示されるはずなのですが。

もちろん requests BeautifulSoup は、インストール済みで、
別のサイトのソースを丸々コピーだとうまくいったりします。
でもできれば基礎くらいは自分で一から書いて覚えたいと思っているので質問させていただきました。
何がいけないのでしょうか?
よろしくお願いします。

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

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

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

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

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

meg_

2021/06/09 01:16

> と書いても、全く反応しません "反応しない"とは、スクリプトをどのように実行されて、どうなったのでしょうか? > サイトを見て書いてみたんですが 状況の確認のためサイトURLを追記ください。
eqeqe

2021/06/09 01:57

こんにちはmeg_さんいつもありがとうございます。 Visual Studio Code上で質問のままです。 URLは https://www.yahoo.co.jp/ エラーは出ていなくて PS C:\Users\■■■■> と表示されるのみです。
meg_

2021/06/09 04:07

解決したようですが、おそらく参考にしたサイトと実行環境が異なるのでしょう。(サイトが不明なので憶測ですが)
eqeqe

2021/06/09 04:11

再コメントありがとうございます! そうなんです、単なる凡ミスのようでした^^;ただ今回の質問では出来たということもさることながら理解することも目的だったので皆さんのご意見にとても感謝しています!いつもありがとうございます。
guest

回答3

0

おはようございます。

問題文読ませていただきました。

以下の手順を踏まえて目的を明確化するところから初めてください。????‍♂️

  1. スクレイピングとは「どこかのWebページへアクセスしてそのページ上のデータを取得すること」ですので、今回ならばYahooページ内のどのデータを取得したいか考える必要があります。
  2. Webページはどのような構成でできているか知っておく必要があります。(参考 : https://udemy.benesse.co.jp/design/web-design/what-is-html.html)
  3. データをいい感じに整形してくれるように、BeautifulSoupは利用されます。以下記事を熟読してチャレンジされると良さそうです。(https://ai-inter1.com/beautifulsoup_1/, https://qiita.com/itkr/items/513318a9b5b92bd56185, )
  4. 私の方でサンプルを作りましたので、こちらのコードを真似て色々試してみてください。
  5. Yahooのどのテキストを取得したいのか決めて、BeautifulSoupを利用してスクレイピングを行う。

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/06/08 22:18

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

eqeqe

2021/06/09 02:03

KUROROさん素早いご回答と丁寧な解説を頂きいつもありがとうございます! 初心者すぎる私にはとてもありがたいです。 まだ頂いたファイルを咀嚼できていないのでまたよく読んでからコメントをお返ししたいと思います。 よろしくお願いいたします!!
退会済みユーザー

退会済みユーザー

2021/06/09 02:36

いえいえ。 また困ったこととかありましたら、気軽にご相談ください。
eqeqe

2021/06/09 04:34

すごい。とってきたデータをエクセルに落とすまで書いていただいていたんですね! 私の頭ではまだこのコードを応用するところまで追いついていませんが、DLして大事に残して少しずつ応用できるようにやってみます!いつもありがとうございます!
guest

0

もしかすると、サイト側の仕様かもしれません。

私も以前、調べてみましたが、同じように『失敗』しました。

スクレイピング自体は違法とまでは言わないまでも、サイト持ちの人からすると**『迷惑』に感じる**ようです。

Webの原理を知ると納得できますね。

詳細は【PHP超入門】HTTP(GET・POST)についてとかで調べてください。

キーワード:『リクエスト』『レスポンス』

簡単に言えば、閲覧者(厳密にはWebブラウザ)がサーバに問い合わせをし、サーバ側はその結果を渡す。というもの。

スクレイピングはそのリクエストを一秒間に何度もやるような感じです。
(もちろん、やり方とかによるけど)

そのため、サーバに負担をかけやすいので、あまり好まれません。

したがって、サイト側が対策を練っている場合があります。

実際、岡崎市立中央図書館事件のような事件も起こっているようですし。

Yahooさん側が用意しているかわかりませんが、存在するなら、公式が発表したWeb APIなるものを使っての実装のほうが安全ですよ。

投稿2021/06/08 22:35

BeatStar

総合スコア4958

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

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

eqeqe

2021/06/09 01:59

BeatStarさま ご回答ありがとうございます!確かに言われてみれば相手は迷惑ですもんね、、、 そのあたりも改めて少し調べてみます!ありがとうございます!
guest

0

ベストアンサー

私のところでは、質問のコードを実行すると35055文字の文字列を取得できています。

最後の行の、

response.text

print(response.text)

に変更して実行するとどうなりますか?

投稿2021/06/08 22:32

編集2021/06/08 23:02
ppaul

総合スコア24666

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

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

eqeqe

2021/06/09 02:01

ppaulさん! で、、出来ました^^;相変わらず超初心者なのでこのレベルでご足労おかけしてすみません。 いつもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問