【问题标题】:How can i screen-scrape a webmail page?我如何屏幕抓取一个网络邮件页面?
【发布时间】:2010-10-20 00:49:01
【问题描述】:

我正在做一个项目,我需要登录一个网站并抓取网页内容。我尝试了以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    WebClient webClient = new WebClient();
    string strUrl = "http://www.mail.yahoo.com?username=sakthivel123&password=operator&login=1";
    byte[] reqHTML;
    reqHTML = webClient.DownloadData(strUrl);
    UTF8Encoding objUTF8 = new UTF8Encoding();
    Label1.Text = objUTF8.GetString(reqHTML1);
}

这会抓取邮件的登录页面。但我需要抓取我的收件箱详细信息。请指导我如何进一步进行,在此先感谢。

【问题讨论】:

  • 我认为是 Yahoo!将具有更严格的安全功能,因此简单的查询字符串 GET 不足以登录您的帐户。我现在无法访问它,但它可能使用 HTTPS 隧道。

标签: c# screen-scraping


【解决方案1】:

请参阅此questions 和相关问题。我们必须先研究网页的 HTML 源代码,然后才能正确废弃它。所以手动登录,获取收件箱页面的来源,然后研究一下就可以了。

你为什么不用雅虎的邮箱API?哪个是更好的解决方案。

【讨论】:

  • 我需要登录并废弃该网页。我有如何废弃页面的代码。但我需要自动登录并废弃网页内容
【解决方案2】:

看到这个问题 - Writing a C# program that scans ecommerce website and extracts products pictures + prices + description from them

P.S.:它被称为“scrape”,执行屏幕抓取的行为将被称为(您猜对了!)“Screen scraping”。用作动词时,“scrap”一词表示丢弃 - 例如“项目已废弃!” ;-)

【讨论】:

    【解决方案3】:

    我建议您首先使用一个名为 Fiddler 的工具来分析目标站点和您的浏览器之间的通信。您可以查看所有的 http 标头、cookie、内容等。

    一旦您的 webClient 对象能够复制浏览器的操作,包括登录、设置适当的 cookie 等,您就可以自动执行该过程。

    最后,一旦你有了想要的 HTML,就可以使用正则表达式从中提取你想要的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多