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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

Q&A

解決済

2回答

1591閲覧

Python 初めてのスクレイピング、手順の紹介サイトからコピペしたが何も得られない。

saya24

総合スコア221

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

0グッド

0クリップ

投稿2020/05/02 07:36

編集2020/05/03 04:38

自分の開発環境は VisualStudio2017 Professinalなのですが、PythonによるWebAPIの利用を挑戦してみようと
こちらの記事のソース丸々を貼付け 実行(デバッグの開始操作)してみたのですが、出力ウィンドウになにも現れてきません。

Python

1import requests 2from bs4 import BeautifulSoup 3 4# WebサイトのURLを指定 5url = "https://news.google.com/?hl=ja&gl=JP&ceid=JP:ja" 6 7# Requestsを利用してWebページを取得する 8r = requests.get(url) 9 10# BeautifulSoupを利用してWebページを解析する 11soup = BeautifulSoup(r.text, 'html.parser') 12 13# soup.find_allを利用して、ヘッドラインのタイトルを取得する 14elems = soup.find_all("a", class_="ipQwMb Q7tWef") 15for e in elems: 16 print(e.getText())

掲載記事でも、「実行結果は以下のようになります(その時のニュースによって異なります)。」との記載ですが、それがどこに現れるのかが言及されていません。 
実行すると 黒いドス窓みたいな画面が現れ、暫くしてからこちらに**"Press Any key to continue. . ."** とだけ現れます。
(出力画面には実行が完了すると"スレッド 0x1 はコード 0 (0x0) で終了しました。 / プログラム 'python.exe' はコード 0 (0x0) で終了しました。"の2行が現れます)

【質問】
・VisualStudio2017の出力画面に本来 何らかの表示行が現れるのでしょうか?
・当方の実行で結果を何も画面に得られていない状態は 当該モジュール=module1.pyのプロパティで ビルドアクションの部分が「Compile」になっていることが関係していますでしょうか? 関係している場合、本来こちらは どういう設定にあるべきなのでしょうか?

ご見解をよろしくお願いします。


2020/05/02 1802追記

Microsoftのドキュメントを参考に、当該モジュールの頭で

python

1print("Hello, Visual Studio")

というコードを追加してみたら 黒いドス窓みたいな画面(Press any key to continue...の画面)に そのコメントは表示されることを確認できました。となると、本来はこちらにWEBAPIとして取得される記事の行が現れるのが 本筋なのですかね????
VisualStudioの出力ウィンドウの中に 結果が現れるのではなく....(ログに出力される記載をしない限り出力ウィンドウには現れない、ということか??)


2020/05/03 1338追記

Zuishinさんのご見解にも絡む検証。
VisualStudio2017の中で当該プロジェクトを Windowsアプリケーションか否か宣言できる部分があるのですが(下記画像のとおり) これをYes=Windowsアプリケーションと位置付けた場合、デバッグ実行時に print文のコード部分でエラーとなりますね。「Message='NoneType' object has no attribute 'write'」 ゆくゆく自分は WEBAPIを利用したGUIアプリの開発を考えているのですが、print文は GUIアプリでは 使えないのですかね。
GUIを選択した場合

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

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

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

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

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

Zuishin

2020/05/03 03:39

出力ウィンドウに関してはその通りです。デフォルトの設定では、ロギングに使います。GUI アプリの場合はコンソール出力が出力ウィンドウに書き込まれます。
saya24

2020/05/03 04:47 編集

貴重なご回答ありがとうございます。Pythonでコンソール出力のコマンドを調べ Print文の部分をソレに置き換えれば 当該プロジェクトがWindowsアプリケーションの位置づけでも 無事正常動作し、出力ウィンドウに結果は現れるだろう、とのご見解ですね??本文に追記致しましたので 併せご確認頂ければ幸いです!
Zuishin

2020/05/03 04:50

終了した質問で続けるのではなく、別質問を立て、こちらで再現できるよう前提条件を全て書いてください。
saya24

2020/05/03 04:57

失礼しました、別途の案件を掲載させて頂きます。
guest

回答2

0

ベストアンサー

とりあえず

elems = soup.find_all("a", class_="ipQwMb Q7tWef")

elems = soup.find_all("a", class_="DY5T1d")

に変えたら動きました。参考にした記事から Google News の仕様変更があったようですね。
(この回答もいつまで有効やら…。)

投稿2020/05/03 03:13

編集2020/05/03 03:14
hoshi-takanori

総合スコア7893

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

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

saya24

2020/05/03 04:46 編集

完璧です、hoshi-takanoriさん ありがとうございます。 無事VisualStudioの出力ウィンドウにも、起動時に現れてくるドス窓の画面にもニューストピックが表示されてまいりました。初めて社外のWEBAPIからデータを取得できて感動しております。 学習を専門としたサイトに誤りの表記などある筈がない、という意識を持ちながら 出だしから躓いて困っていたので 本当に助かりました。ありがとございました。
guest

0

soup.find_all("a", class_="ipQwMb Q7tWef")で要素が取得できてないのが原因かと思います。
そのページを見ると、class_ のとこでクラスの条件を指定していますが、classがQ7tWefの要素が存在しませんでした。一方で、ipQwMbはありました。
ですので、soup.find_all("a", class_="ipQwMb")でやってみてはいかがでしょうか。

投稿2020/05/03 03:17

minaminao

総合スコア249

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

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

saya24

2020/05/03 04:06

minaminaoさん ご回答、要因の確認を頂き誠にありがとございます。 今しがた ご提示のコードを試したのですが 結果は変わらず 何も画面に現れることはありませんでした。引き続いて 以下でご回答を頂いている hoshi-takanoriさんの対応を試行してみますね。 ご支援に重ねてお礼を申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問