C#でスクレイピングするコード
C#でウェブサイトにアクセスして、文章をダウンロードする(スクレイピング)コードです。
main()を目的によって変えたり、getSource()を自分のコードにコピペして使って下さい。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net; //追加してください。
using System.IO; //追加してください。
namespace getSource
{
class Program
{
static void Main(string[] args)
{
string url = "https://baacash.com/scraping"; //ダウンロードしたいURL
string source = ""; //結果を入れるハコ
if (getSource(url, ref source))
{
//ダウンロード成功したときの処理
Console.WriteLine(source);
Console.ReadKey(); //キー入力待ち
}
else
{
//ダウンロード失敗したときの処理
Console.WriteLine("ダウンロードに失敗しました。");
Console.ReadKey(); //キー入力待ち
}
}
static bool getSource(string url, ref string source)
{
HttpWebRequest webreq = (HttpWebRequest)
WebRequest.Create(url);
try
{
//ウェブサイトの内容をダウンロード
HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse();
Stream st = webres.GetResponseStream();
//ウェブサイトの内容をハコにいれる
StreamReader sr = new StreamReader(st);
source = sr.ReadToEnd();
st.Close();
sr.Close();
}
catch (WebException e)
{
Console.WriteLine(e.Message); //ダウンロードに失敗した場合、理由を表示
Console.WriteLine("getSourceで例外が発生しました。\n" + url);
return false;
}
return true;
}
}
}
getSource(string url, ref string source)
引数
第一引数(string urlのところ)にはダウンロードしたいURLをいれます。
第二引数(ref string sourceのところ)にはダウンロードした文章をいれるためのハコをいれます。
ref sourceのように書いておけば、getSource()が実行されたあと、結果が入ります。
返り値
ダウンロードに成功したらtrue、失敗したらfalseを返します。
失敗したときは、エラー(例外)の内容が出力されるようになっています。
注意点
Console.ReadKey()は消す
main()にConsole.ReadKey()が入っていて、キー入力を待つようになっています。
とりあえず動かしてみたときに、結果がみれるようにするためです。
たくさんアクセスするときはジャマになるので消してください。
usingを忘れない
getSource()をコピペしてつかうときは、
using System.Net; //追加してください。
using System.IO; //追加してください。
の2行も忘れずにコピーしてください。
プロキシを使う場合は、
をみてみてください。
この記事が気に入ったらサポートをしてみませんか?