如何从源代码中抓取变量数据
本文关键字:抓取 变量 数据 源代码 | 更新日期: 2023-09-27 18:17:03
我正试图从一个网站的源代码中抓取一个链接,每个源代码都不同。
形式的例子:
<div align="center">
<a href="http://www10.site.com/d/the rest of the link">
<span class="button_upload green">
下次我得到源代码时,http://www10
更改为任何http://www
+数字,如http://www65
。
我怎样才能获得与新更改的号码相同的链接?
编辑:以下是我如何使用RE MatchCollection m1 = Regex.Matches(textBox6.Text, "(href='"http://www10)(?<td_inner>.*?)('">)", RegexOptions.Singleline);
您在注释中提到使用正则表达式解析HTML文档。这是一种最困难的方法(通常也不推荐)。尝试使用像http://html-agility-pack.net
这样的HTML解析器对于HTML Agility Pack:你可以通过NuGet packages安装它,这里有一个例子(发布在他们的网站上):
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选择器在文档中导航并选择所需的内容。
在页面加载时运行这样一个JS函数:
// 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); });