C#使用Selenium提取网页a标签href属性中tel:前缀的手机号
代码调整方案
原有代码存在两处核心问题,对应调整如下:
- 定位规则优化:原XPath匹配所有带href属性的a标签,未做tel前缀筛选,会混入大量无关元素,调整为仅匹配href属性包含
tel:的a标签 - 号码提取逻辑优化:获取href属性后移除
tel:前缀即可得到目标手机号
调整后完整代码
// XPath筛选href带tel:的a标签 var members = await Task.Factory.StartNew(() => driver.FindElements(By.XPath("//a[contains(@href, 'tel:')]"))); if (members.Count == 0) { break; } foreach (IWebElement member in members) { // 提取href后移除tel:前缀,拿到纯手机号 string hrefVal = member.GetAttribute("href"); string _uid = hrefVal.Replace("tel:", "").Trim(); Program.MainForm.dataGridView6.Rows.Insert(0, member.Text, _uid); await TaskEx.Delay(10); progress++; }
可选补充
如果需要去除手机号前的+号等特殊符号,可在提取_uid后追加替换逻辑:
_uid = _uid.Replace("+", "").Trim();
内容的提问来源于stack exchange,提问作者Roanda
相关产品推荐
相关产品推荐

