首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >抓取链接中的隐藏值

抓取链接中的隐藏值
EN

Stack Overflow用户
提问于 2012-10-17 20:24:43
回答 1查看 419关注 0票数 0

我正在抓取一个网站的内容。

我注意到我想要抓取的字段并不包含我需要的确切信息。用户需要单击它才能显示正确的值

例如,在屏幕上,用户可以看到“发送电子邮件”。单击发送电子邮件后,它将更改为support@company.com。

现在,我想刮掉"support@company.com“。

一种有效的策略是解析链接的节点。我使用了string.IndexOfstring.Substring)

代码语言:javascript
运行
复制
<a href="#" onclick="displayEmail(this, 'support@company.com');......>Send Email</a>

还有没有别的选择?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-11-14 00:44:28

要从HTML文档(或片段)中查找特定节点或获取节点属性值,可以使用AgilityPack。此外,为了从字符串中提取特定信息,您可以使用正则表达式、字符串函数等。这取决于您要提取的信息的类型。

要抓取电子邮件地址,或者只是数字,我会使用正则表达式(例如,从here)。

下面是一个如何从您提供的HTML片段中抓取电子邮件地址的示例:

代码语言:javascript
运行
复制
var regex = new Regex(
    @"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", 
    RegexOptions.IgnoreCase
);
var html = @"<a href='#' onclick='displayEmail(this, ""support@company.com"")'>Send Email</a>";
var doc = new HtmlDocument();
doc.LoadHtml(html);

// just an example on how to get node's attribute value
// your selectors could be completely different
var onclick = doc.DocumentNode.SelectSingleNode("a").Attributes["onclick"].Value;
var email = regex.Match(onclick);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12934291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档