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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

2回答

765閲覧

PowerShell で Wikipedia の検索結果を取得したい

daidaiiro

総合スコア12

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2020/01/06 05:13

前提・実現したいこと

PowerShell で Wikipedia の検索結果を取得したいのですが、結果が思うようなものではありません。何が問題なのでしょうか?

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

エラーは発生していませんが、結果が望んでいるようなものではありません。

結果

<!DOCTYPE html> <html lang="en"> <meta charset="utf-8"> <title>Browser Connection Security Issues</title> <style> ... <h1>Your Browser's Connection Security is Outdated</h1> ... <p lang="ja" dir="ltr"><strong>日本語:</strong> ウィキペディアではサイトのセキュリティを高めています。ご利用のブラウザはバージョンが古く、今後、ウィキペディアに接続できなくなる可能性があります。デバイスを更新するか、IT管理者にご相談ください。技術面の詳しい更新情報は以下に英語で提供しています。</p> ... <p>We are removing support for insecure TLS protocol versions, specifically TLSv1.0 and TLSv1.1, w hich your browser software relies on to connect to our sites. This is usually caused by using some ancient browser or user agents like old Android smartphones. Also it could be interference from c orporate or personal "Web Security" software which actually downgrades connection security.</p> <p>You must upgrade your browser or otherwise fix this issue to access our sites. This message wil l remain until Jan 1, 2020. After that date, your browser will not be able to establish a connecti on to our servers at all.</p> <p>See also the <a href="https://wikitech.wikimedia.org/wiki/HTTPS/Browser_Recommendations">HTTPS Browser Recommendations</a> page on Wikitech for more-detailed information.</p> ...

該当のソースコード

PowerShell

1 2$useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100" 3 4# 以下のURIを試しました 5# $Uri = "https://ja.wikipedia.org/w/index.php?search=きせつ" 6# $Uri = "https://ja.wikipedia.org/w/api.php?search=きせつ" 7# $Uri = "https://ja.wikipedia.org/w/index.php?sort=relevance&search=きせつ&title=特別&profile=advanced&fulltext=1&&ns0=1" 8# $Uri = "http://ja.wikipedia.org/w/api.php?action=query&format=json&srsearch=きせつ" 9$Uri = "https://en.wikipedia.org/w/api.php?action=query&format=json&srsearch=きせつ" 10 11Invoke-RestMethod -Uri $Uri 12Invoke-WebRequest -Uri $Uri 13 14Invoke-RestMethod -Uri $Uri -UserAgent $useragent 15Invoke-WebRequest -Uri $Uri -UserAgent $useragent 16 17

試したこと

URIを適宜変更、キーワードを[System.Web.HttpUtility]::UrlEncode()にてエンコード等試しましたが、結果はすべて同じで"ご利用のブラウザはバージョンが古く~"と帰ってきました。
ウイルスバスターを入れているのですが、会社用なので切ることはできません。

補足情報(FW/ツールのバージョンなど)

  • OS

Windows 10 Pro

  • PowerShellバージョン

Windows PowerShell ISE Host 5.1.17134.858

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

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

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

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

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

guest

回答2

0

おそらく、TLS1.0や1.1などの古い暗号化通信を行っているためのエラーだと思います。
現状、多くのサイトで使われているTLS1.2をPowerShellではデフォルトでオフなのでオンにする必要性があります。
こちらを参考になさると良いかもしれません。

投稿2020/01/06 05:23

kyoya0819

総合スコア10429

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

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

daidaiiro

2020/01/07 06:55

回答有難うございます。所望の動作ができました。
guest

0

ベストアンサー

取得したページ内にあるエラーメッセージのとおりで、WikipediaはすでにTLS 1.2でしか参照できません。

たとえば[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12と書くように、TLS 1.2を許可してください(参考)。

(別件ですが、Wikipediaをプログラムから利用する場合はAPIを利用することをおすすめします)

投稿2020/01/06 05:21

maisumakun

総合スコア145184

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

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

daidaiiro

2020/01/06 05:26

ありがとうございます。無事に検索結果が取得できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問