2016-11-09 12 views
1

私は、ソースコードごとに異なるウェブサイトのソースコードからリンクを取り除こうとしています。ソースコードから変数データをスクラップする方法はありますか?

形態例:

<div align="center"> 
    <a href="http://www10.site.com/d/the rest of the link"> 
     <span class="button_upload green"> 

Iは、ソースコードhttp://www65など任意http://www +番号にhttp://www10変更を取得し、次回。

正確なリンクを新しい変更番号でスクラップするにはどうすればよいですか?

編集:

// jQuery is required! 

var updateLinkUrl = function (num) { 
    $.each($('.button_upload.green'), function (pos, el) { 
      var orig = $(el).parent().prop("href"); 
      var newurl = orig.replace("www10", "www" + num); 
      $(el).parent().prop("href", newurl); 
    }); 
}; 
$(document).ready(function() { updateLinkUrl(65); }); 
+0

Html Parserを使用していますか?ようにhttp://htmlagilitypack.codeplex.com/ – appl3r

+0

@ appl3r私は正規表現を使用したが、それを使用して私は手動ですべての新しいnumを入力しなければならなかった –

答えて

0

を使用してみましょうHTMLドキュメント。それはあなたがこれを行うことができる最も難しい方法です(また、一般的にお勧めしません!)。 HTML敏捷性パックのhttp://html-agility-pack.net

のようなHTMLパーサを使用してみてください:あなたはNuGet Packegesを経由して、それをインストールして、ここでは(自分のウェブサイトに掲載)の例である:

HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]") 
{ 
    HtmlAttribute att = link["href"]; 
    att.Value = FixLink(att); 
} 
doc.Save("file.htm"); 

それは文字列の内容をも読み込むことができますだけでなく、ファイル。 xPathまたはCSSセレクタを使用してドキュメント内をナビゲートし、必要なものを選択します。

+0

私はそれを試みますが、コードの最後の行は、新しいソースコードに存在する正確な新しいnumを知っている –

+0

あなたのコードは、私が知らないwwwの後のnumを知ることに基づいています。私はあなたに例を与えています。 –

+0

どのように番号を知っていますか? ? –

1

あなたは、解析のための常連式を使用し、コメントで述べた: ここで、ページのロード時に私はこのようなJSの機能については、実行する方法RE MatchCollection m1 = Regex.Matches(textBox6.Text, "(href=\"http://www10)(?<td_inner>.*?)(\">)", RegexOptions.Singleline);

+0

を使ってください。これは少しクールですが、wwwの後に変更されたnumのcasにはまだ問題があります。あなたの方法を適用することは、すべてのhttpリンクをスクラップすることを意味しますが、私は自分のリンクを除くすべての静的リンクを削除するための削除文字列を作ることができます。それを試して、あなたに返事を返します –

+0

'WebClient client = new WebClient();でリクエストすると、そのページのソースが取得されます。あなたはリンクを掻き集めてそれらを保存し、あなたが掻き取ったばかりのURLを使って次のWebClient要求を行うことができます。また、ほとんどの場合、必要なリンクだけを選択するセレクタを書くことができます。 – appl3r

+0

私はHTMLアジリティパックをインストールしましたが、あなたのコードにエラーが表示されています とにかく修正しています。 –

関連する問題