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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

367閲覧

Pythonのrequests.Sessions().get()で取得する言語を指定する方法【Googleの天気情報】

Cocode

総合スコア2314

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2022/09/28 03:13

編集2022/09/28 03:25

知りたいこと

requests.Sessions().get(url)でhtmlを取得する時に、デフォルトの日本語ではなく、英語で取得したいです。

前提条件

現在、海外の動画教材を見ながら勉強しています。

Googleで「weather」と検索するとすごく長いURLがURL欄に表示されます。
例)https://www.google.com/search?q=weather&rlz=1C5CHFA_enJ(省略)&sourceid=chrome&ie=UTF-8

ですが後ろの文字列の羅列は無視して最初の方の部分+地名で、任意の場所の天気を表示させることができます。
例)https://www.google.com/search?q=weather+london(ロンドンの天気を表示)

このことを利用して、任意の場所の天気を表示させるアプリをつくろうという教材です。
全体は長すぎるので簡易版コード(ロンドンの天気だけを表示する)を以下に載せます。

python

1import PySimpleGUI as sg 2from bs4 import BeautifulSoup as bs 3import requests 4 5def get_weather_data_london(): 6 USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36" 7 8 # ↓↓ロンドンの天気の検索結果 9 url = 'https://www.google.com/search?q=weather+london' 10 11 # ↓↓検索結果ページのHTMLコードを取得 12 session = requests.Session() 13 session.headers['User-Agent'] = USER_AGENT 14 html = session.get(url) 15 soup = bs(html.text, 'html.parser') 16 17 # ↓↓<span id="wob_dc">の中の文字を取得 18 weather = soup.find('span', attrs={'id': 'wob_dc'}).text 19 return weather 20 21print(get_weather_data_london()) 22# 出力結果:「晴」などの日本語

htmlを取得して、<span>タグでid="wob_dc"の要素のテキストを取得するという処理です。

上記のコードには記載していませんが、このあとの処理として、天気が"sunny"なら●●の処理をする、"snow"なら▲▲の処理をする、とifで分岐させるのですが、私のロケーションが日本なので(?)日本語の天気(「晴」)などを取得してしまい、if文が使い物になりません。

if文の方は変更せず、取得してくるhtmlの言語を英語にしたいです。

調べたこと

  • requests.Session()requests.Session().get(url)あたりで、パラメーターを設定したら英語にできないかと思って調べましたが、見つけられませんでした。
  • 天気情報のURLに例えば_ENなどを付け足し、search?q=weather+london_EN←のように指定する方法があるのではないかと思い調べましたが、見つけられませんでした。

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

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

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

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

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

Cocode

2022/09/28 03:21

で、できました…すごい…ありがとうございます!!!!
Cocode

2022/09/28 03:22

もしよければ回答として投稿していただけませんか。ベストアンサーにさせていただきまして、この質問をcloseさせようと思います。
melian

2022/09/28 03:24

ありがとうございます、回答に転記します。
guest

回答1

0

ベストアンサー

※ コメント欄から転記

クエリ文字列に hl=en を追加してみてください。

python

1url = 'https://www.google.com/search?q=weather+london&hl=en'

投稿2022/09/28 03:25

melian

総合スコア19714

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

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

Cocode

2022/09/28 03:28

迅速な回答をありがとうございました。とても助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問