【问题标题】:Entering a Username to Check another website?输入用户名以检查另一个网站?
【发布时间】:2015-07-16 00:47:51
【问题描述】:

基本上我想要做的是您在文本框中输入一条信息并单击提交。 然后它会检查另一个网站以查看用户名是否可用

然后它将所有发现返回到我当前网站上的标签中。

我不知道该怎么做?我应该从哪里开始。我是否需要他们单击的按钮进行检查,将他们重定向到该网站,还是可以仅在后台运行并进行检查?

这甚至可以在本地进行以检查在线用户名吗?

这听起来可能很模糊,但我认为这是我实际上可以深入探讨的内容。

【问题讨论】:

  • 查找“C# HttpRequest”以获得一些有用的信息。
  • 你在尝试什么网站?方法各不相同。我会建议在 HttpRequest 之前使用 WebClient,因为两者中使用起来更简单。
  • 如果没有更多细节,很难帮助解决这个问题。这个其他网站上有表格吗?它只是一个包含用户名列表的页面吗?
  • 对于您想要检查的任何给定网站,您需要弄清楚如何进行检查。一旦你可以确定一个 HTTP 请求和预期的响应来确定这一点(除非网站有一个你可以使用的 API),那么你只需要发出那个请求并在你的代码中解析那个响应。
  • @KoBE 嗯,当然,WebClient 可能更好。

标签: c# web


【解决方案1】:

如果您注意到,您可以在该站点上检查名称,甚至无需使用表单,只需使用 url 中的名称即可。

https://news.omertabeyond.net/userhistory/idontexist

https://news.omertabeyond.net/userhistory/depay

因此,最简单的解决方案是执行以下操作:

string userName = HttpUtility.UrlEncode("idontexist");
string notFoundText = "No player found with this ingame.";
using (WebClient wc = new WebClient())
{
    if (wc.DownloadString("https://news.omertabeyond.net/userhistory/" + userName).Contains(notFoundText))
    {
        // doesn't exist
    }
    else
    {
        // does exist
    }
}

UrlEncode 位只是确保在发出请求之前将用户名格式化为在 url 中使用。

【讨论】:

  • 非常感谢!解决了我的问题。感谢您的帮助。
  • 只是出于好奇,您可以看到 notFoundText 字符串是静态的。假设该人确实存在,那么我将如何获取诸如“在线百分比”之类的信息或类似的信息?因为它的价值会改变。现在也标记为已解决。
  • 它是静态的,因为网站在找不到用户时返回它。为现有用户解析信息是一个不同的问题。也有多种方法可以解决这个问题。正则表达式、手动解析(搜索索引和提取子字符串)、HtmlAgilityPack 等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
相关资源
最近更新 更多