【问题标题】:Screen scraping in Asp.netAsp.net 中的屏幕抓取
【发布时间】:2012-08-07 08:00:52
【问题描述】:

这就是我缓存网页的方式,但我没有得到整页,这个页面有大约 30 个结果,我只得到 26 个结果。请问有人可以帮助我吗?

WebClient wc = new WebClient();
html = wc.DownloadString("http://www.yellowpages.com/ga/metropcs-store?g=GA&page=1&q=Metropcs+Store").ToString();

是的,如果有人对此有任何解决方案,请帮助我

【问题讨论】:

  • 字符串是否以“

标签: c# asp.net screen-scraping


【解决方案1】:

您提供的代码工作正常。表示返回的 html 正好包含 30 个项目。您所遵循的解析技术可能存在一些问题。当我检查时,我发现申请第 28 项第 29 项和第 30 项的 css 类略有不同。这可能是导致问题的原因

【讨论】:

  • 我认为 css 没有任何区别,我将其用作我的解析对象 MatchCollection m1 = Regex.Matches(html1, @"(?]*>).*?(?=)", RegexOptions.Singleline);请帮助我
  • 其中一个 div 的 css 类的项目 i 到 27 是“rank pin”。对于 28、29 和 30,它只是“排名”。甚至视觉上的差异(请检查重新渲染的页面),最后三个项目没有索引号的背景
  • 我没有使用该 div 作为排名别针 我正在使用这个 4864 Jimmy Carter Blvd, 所以没关系是任何其他的 css改变我正在提取这样的数据 MatchCollection m2 =Regex.Matches(html1, @"(?]*>).*?(?= )", RegexOptions.Singleline); foreach(在 m2 中匹配 m){ Response.Write(m.ToString() + "
    "); }
  • "street-address" 在某些项目中缺失,例如:第 11 项
  • 对于 11 日、28 日、29 日和 30 日,没有街道地址。这就是为什么你会得到 26 个结果。但实际上在黄页返回的 Html 中有 30 条记录
猜你喜欢
  • 1970-01-01
  • 2011-02-20
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多