Web ページをスクレイピングしましたが、リンクに有効なリンクが必要で、クリックするとそのリンクページにジャンプします。
ex スクレイピングされたデータ: 1 日目 - マイページに移動 - ステータス
私のページに移動して、そのhrefにあるリンクにジャンプしたい。
元。私が得た実際のhtml
<td><a href="javascript:jsFormAuth('summary.php?meetingid=40456&plusday=0');">Go to my Page</a></td>
次のようにする必要があります。
<td><a href="http://somewebsite.com/tab/form/summary.php?meetingid=40456&plusday=0');">Go to my Page</a></td>
スクレイピングのコードは次のとおりです。
public string ScreenScrape()
{
string url = "http://somewebsite.com/tab/form/index.php";
string strResult = "";
WebResponse objResponse;
WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
objResponse = objRequest.GetResponse();
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
strResult = sr.ReadToEnd();
// Close and clean up the StreamReader
sr.Close();
}
var webGet = new HtmlAgilityPack.HtmlWeb();
var doc = webGet.Load(url);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
att.Value = "http://somewebsite.com/tab/form/"+att.Value;
}
return strResult;
}
リンクを変更して JavaScript 文字列を削除しようとしましたが、正しい index に到達する方法がわかりませんでした。また、それを変更できたら、strResult(上記)の各hrefを新しいhrefに置き換えるにはどうすればよいですか?
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
att.Value = "http://somewebsite.com/tab/form/" + ....
}
誰でも私を助けてくれますか?ありがとう