我希望在我当前的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");
有人可以告诉我如何从给定的网站上获取随机生成的单词/单词。此外,如果有人知道生成随机单词的更好方法,我也想听到。
答案 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。
然后使用一点正则表达式,您可以捕获所检索的50个单词中的一个。
例如:
'/"([^"]+)"/'
答案 2 :(得分:0)
//编辑,迟到......请参阅https://stackoverflow.com/a/22586208/3451056
另一点是,在未经许可/提出要求的情况下包括这样的电话可能不是很好。