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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1296閲覧

ウェザーニューズをスクレイピングしたい

kouki5512

総合スコア4

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2023/01/14 00:43

前提

ウェザーニューズをスクレイピングしたいが参考サイトの様に情報を取り出せない。
参考サイト
https://www.google.com/amp/s/www.autumn-color.com/archives/1654%3famp=1

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • 参考サイトの様に表示させる。
  • 天気によって表示画像を変える。(晴れは太陽など)

発生している問題・エラーメッセージ

どの変数でどうやって情報を取り出したら良いか分からない。

該当のソースコード

javascript

1#緯度経度を取得 2def Location(address): 3 Url = "https://www.geocoding.jp/api/" 4 Params = {"q":address} 5 Req = requests.get(Url, params=Params) 6 Soup = BeautifulSoup(Req.text, 'lxml') 7 8 9 return Soup.find("lat").text, Soup.find("lng").text 10 11 12#WeatherNewsの取得 13def WeatherNews(address): 14 Url = "https://weathernews.jp/onebox/" 15 16 #緯度経度を取得 17 (Lat, Lng) = Location(address) 18 19 SrhUrl = Url + Lat + '/' + Lng + "/lang=ja" 20 21 Req = requests.get(SrhUrl) 22 Soup = BeautifulSoup(Req.text, 'lxml') 23 24 #Dict 25 myDict = {} 26 27 #天気 28 myDict["天気"] = Soup.find(class_="sub").text.split(", ")[1] 29 30 #気温 31 myDict["気温"] = Soup.find(class_="obs_temp_main").text 32 33 #風速とかの情報 34 for val in Soup.find(class_="table-obs_sub").find_all("tr"): 35 myDict[val.find(class_="obs_sub_title").text] = val.find(class_="obs_sub_value").text.replace(" : ","") 36 37 return myDict 38 39def main(address): 40 print(address + "の天気") 41 print("---") 42 Rst = WeatherNews(address) 43 44 for val in Rst: 45 print(val, Rst[val]) 46 47 48if __name__ == '__main__': 49 main("石川県金沢市")

試したこと

console.log()等で調べてみたのですが分からない。

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

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

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

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

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

melian

2023/01/14 02:34

参照されている記事は3年程前のものですが、現状のウェザーニュースでは sub や obs_temp_main class などの要素は存在しません。
m.ts10806

2023/01/14 04:47

公式に提供されているAPI探してください。 スクレイピングはかなりブラックよりのグレーな行為です。
guest

回答1

0

ウェザーニューズの利用規約には
コンテンツの全部又は一部につき複製、翻訳、翻案、放送、出版、販売、貸与、二次利用その他WNIの著作権を侵害する各行為に及ぶこと。
してはなりませんとありますが、事前に株式会社ウェザーニューズの許可は得ていますか?

得ていない場合で天候のデータが必要であれば、気象庁HPから気象データをCSVにてダウンロード可能となっていますのでそちらから入手できます。

そうではなくスクレイピングの練習がしたいのであれば練習用のサイトもあるようですのでそちらを利用されるのが良いかと思います。(「スクレイピング 練習サイト」で検索するといくつか見つかります)

投稿2023/01/14 02:41

meg_

総合スコア10580

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問