gpt4 book ai didi

c# - 下载网页的一部分 - 数据挖掘

转载 作者:可可西里 更新时间:2023-11-01 16:47:56 28 4
gpt4 key购买 nike

这基本上就是我正在做的。我从 en.wikipedia.org 中选择了一篇科学文章,并获得了已进行编辑的用户列表以及他们编辑该文章的次数。为了得到这个,我按照页面中的链接将我带到 toolserver。我用这个页面http://toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=en&wikifam=.wikipedia.org&page=Quantum_mechanics&since=&until=&grouped=on&hideanons=on&order=-edit_count&max=100&order=-edit_count&format=wiki检索排序列表中的编辑器并排除匿名。这很好用,因为它出现在一个格式良好的列表中(即使它有我不需要的日期)。

但是,为了判断他们的可信度,我需要查看顶级用户并查看他们贡献的热门文章,看看他们是否正在编辑大量科学文章或只是随机垃圾。我很难获得每个用户的数据,因为目前,我能找到的唯一显示用户历史记录的网站是 http://en.wikipedia.org/w/index.php?title=Special:Contributions&limit=5000&target=Aquirata

但是,获取单个用户的网页需要相当长的时间,至少20秒,然后我还要解析出无用的数据等。我不需要接近那么多的数据强制下载。到目前为止,这是我获取用户数据的代码:

    static string getWebPage(string url)
{
WebClient client = new WebClient();
client.Headers.Add("user-agent",
"Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");

return client.DownloadString(url);
}

static void Main(string[] args)
{
string url = "http://en.wikipedia.org/w/index.php?title=Special:Contributions&limit=50&target=Aquirata";

string page = getWebPage(url);
var lines = page.Split('\n', '\r');
var edits = lines.Where(t => t.StartsWith("<li class"));
foreach (string s in edits)
Console.WriteLine(s);
Console.ReadLine();
}

是否有可能更快和/或更容易的替代方案?也许某处有一个数据库? (我不确定维基媒体是否有关于用户贡献的统计数据)。

此外,我使用 C# 是因为我最熟悉它。我可能会切换到 java 以允许跨平台,但我愿意接受任何其他建议。

最佳答案

我认为维基百科提供了他们的数据供下载(因此您不必将其从 HTML 页面中删除)。

参见:http://dumps.wikimedia.org/enwiki/

HTH

关于c# - 下载网页的一部分 - 数据挖掘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749782/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com