得到随机的单词

时间:2014-03-23 01:42:56

标签: c# php random webclient

我希望在我当前的C#项目中使用随机选择的英语单词。我想到这样做的一种方法是访问以下网站并检索随机生成的单词:

http://www.wordgenerator.net/random-word-generator.php

但是,我真的不知道该怎么做。到目前为止,我已经尝试了以下代码(不能按预期工作):

string downloadedString;
WebClient client;

client = new WebClient();
downloadedString = client.DownloadString("http://www.wordgenerator.net/random-word-generator.php#rname");

有人可以告诉我如何从给定的网站上获取随机生成的单词/单词。此外,如果有人知道生成随机单词的更好方法,我也想听到。

3 个答案:

答案 0 :(得分:4)

使用具有不同网址的同一网站,每次都会为您提供一组不同的51个名词:

client = new WebClient();
downloadedString = client.DownloadString("http://www.wordgenerator.net/application/p.php?id=nouns&type=50&spaceflag=false");            
string[] randomWords = downloadedString.Split(',');

您可以使用此API,这将是一个更好的主意。

http://randomword.setgetgo.com/

屏幕抓取是一个坏主意,因为屏幕可能会改变您的解析实现。使用REST API更加可靠,因为它应该不太容易改变。

您可以像这样使用上述API:

client = new WebClient();
downloadedString = client.DownloadString("http://randomword.setgetgo.com/get.php");            
string randomWord = downloadedString;

答案 1 :(得分:1)

由于该页面通过ajax加载该单词,因此很难从中捕获它。最好试试那个页面中ajax调用的url。

http://www.wordgenerator.net/application/p.php?id=dictionary_words&type=50_definition&spaceflag=false

然后使用一点正则表达式,您可以捕获所检索的50个单词中的一个。

例如:

'/"([^"]+)"/'

答案 2 :(得分:0)

//编辑,迟到......请参阅https://stackoverflow.com/a/22586208/3451056

另一点是,在未经许可/提出要求的情况下包括这样的电话可能不是很好。