C#のwebBrowserオブジェクトを使って、HTMLのスクレイピングをするプログラムを作成しています。
NavigateメソッドでURLを指定して、DocumentCompletedで取得したHTMLをスクレイピングするという流れなのですが、だいたい50件以上になると、何かしらエラーになってしまいます。
ただ繰り返しているだけなのに、何が原因かはわかりません。
起きるエラーは、
(1)メモリ不足 (2)Widndowsに問題を送信 (3)エラーもなくそのまま処理が完了しない
の3パターンです。
プログラムの作りとしましては、
C#
1webBrowser.Navigated(URL);
このようにNavigateメソッドでURLを指定して、
C#
1private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){ 2 3 HtmlElementCollection htmldata = webBrowser.Document.All; 4 5 // 取得したHTMLを使って、スクレイピング処理を行う 6{
このような感じで、HTMLを取得して、スクレイピングを行っています。
この処理を、foreachで繰り返しているのですが、このような作りでは、回数を重ねるとエラーになってしまうものなのでしょうか?
一般的に、大量のURLのスクレイピングを行う場合、何か注意しなければならないことなどは無いでしょうか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/12 01:12