前提・実現したいこと
初心者です。
私情で、You Tubeにある字幕が書かれているxmlデータをC#でダウンロードしてみようと思ったところ、例外が発生してしまいました。
そこで、とりあえず、エラーの原因を探るために、
「https://www.google.co.jp/のHTMLをダウンロードする」という単純なプログラムを作ったところ、
同じような例外が投げられました。
最終的にはYoutubeの字幕ファイルをダウンロードできようにしたいですが、
この質問では、とりあえず「HTMLをダウンロードする」ことを実現したいです。
cs
1using System.IO; 2using System.Net; 3using System.Windows.Forms; 4using System.Xml; 5 6namespace YoutubeSubtitlesProject 7{ 8 public partial class Form1 : Form 9 { 10 public Form1() 11 { 12 InitializeComponent(); 13 14 System.Net.WebClient wc = new System.Net.WebClient(); 15 wc.DownloadString("https://www.google.co.jp/"); // ここで例外 16 wc.Dispose(); 17 18 } 19 } 20}
発生している問題・エラーメッセージ
System.Net.WebException HResult=0x80131509 Message=リモート サーバーに接続できません。 Source=System スタック トレース: 場所 System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) 場所 System.Net.WebClient.DownloadString(Uri address) 場所 System.Net.WebClient.DownloadString(String address) 場所 YoutubeSubtitlesProject.Form1..ctor() (C:\Users\skytomo\source\repos\YoutubeSubtitlesProject\YoutubeSubtitlesProject\Form1.cs):行 20 場所 YoutubeSubtitlesProject.Program.Main() (C:\Users\skytomo\source\repos\YoutubeSubtitlesProject\YoutubeSubtitlesProject\Program.cs):行 19 内部例外 1: SocketException: アクセス許可で禁じられた方法でソケットにアクセスしようとしました。 172.217.25.99:443
該当のソースコード
wc.DownloadString("https://www.google.co.jp/");
試したこと
Yahooで試したりしましたが同じ結果です。
また、画像(jpg)などを落とそうと思ってやってみましたが、同じ理由でダメでした。
色々、ググって調べてみましたが、こういう例外が投げられる理由についてわかりませんでした。
(訂正)超メジャーなサイトだと相手のサーバーに拒否される可能性があるそうなので、
はてなブログのサイトとか宇宙天気ニュース(http://swnews.kagoshima-ct.ac.jp/)
苦しんで覚えるC言語(https://9cguide.appspot.com/)などでも再度試してみましたが、
どれも「アクセス許可で禁じられた方法でソケットにアクセスしようとしました。」という例外が投げられてしまいます。
補足情報
OS: Windows10
ネット環境:Wi-Fi
統合開発環境: Visual Studio 2017
ターゲットネットフレームワーク: .NET Framework 4.6.1
WebBrowserも動かないです。
回答ありがとうございます。
WebBrowserを使ってみましたが結果は、
「Web ページへのナビゲーションは取り消されました」
と表示されてしまいました。
「ページを最新の情報に更新する。」
をクリックすると、
「このページを表示できません」
「Web アドレス https://teratail.com が正しいか確かめてください」
と表示され、しかたなく
「Bing でこのサイトを検索」
をクリックすると、
「このページを表示できません」
「Web アドレス https://www.bing.com が正しいか確かめてください」
と表示されてしまいました。(つまりBingすらつながらない)
ちなみにローカルのHTMLファイルはちゃんと表示されます。
cs
1using System; 2using System.Windows.Forms; 3 4namespace WebBrowserProject 5{ 6 public partial class Form1 : Form 7 { 8 public Form1() 9 { 10 InitializeComponent(); 11 12 webBrowser1.Navigate(@"https://teratail.com/questions/30410"); 13 14 Console.WriteLine(webBrowser1.DocumentText); 15 } 16 } 17}
回答4件
あなたの回答
tips
プレビュー