gpt4 book ai didi

c# - 从 C# 中生成的搜索结果中选择一个随机链接

转载 作者:行者123 更新时间:2023-11-28 03:28:24 25 4
gpt4 key购买 nike

我正在制作一个 wpf 应用程序,我需要它从生成的搜索结果中随机选择一个链接。我不知道该怎么做。这只是我被分配的一项智力练习。请帮助我快完成了。这是到目前为止的代码...我是 WPF 的 super 初学者。

namespace Search
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void Btn_Click(object sender, RoutedEventArgs e)
{
using (var browser = new IE("http://www.google.com"))
{
browser.TextField(Find.ByName("q")).TypeText(_textBox.Text);
browser.Button(Find.ByName("btnG")).Click();

browser.WaitForComplete(5000);

System.Windows.Forms.SendKeys.SendWait("{Enter}"); // presses search on the second screen

browser.Button(Find.ById("gbqfb")/*.ByName("btnG")*/).Click(); // doesn't work



}
}
}
}

最佳答案

这是一些指示性代码...

private void DownloadRandomLink(string searchTerm)
{
string fullUrl = "http://www.google.com/#q=" + searchTerm;
WebClient wc = new WebClient();
wc.DownloadFile(fullUrl, "file.htm");
Random rand = new Random();
HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
var linksOnPage = from lnks in doc.DocumentNode.Descendants()
where lnks.Name == "a" &&
lnks.Attributes["href"] != null &&
lnks.InnerText.Trim().Length > 0
select new
{
Url = lnks.Attributes["href"].Value,
Text = lnks.InnerText
};
if (linksOnPage.Count() > 0)
{
int randomChoice = rand.Next(0, linksOnPage.Count()-1);
var link = linksOnPage.Skip(randomChoice).First();
// do something with link...
}
}

此代码采用搜索词并构建完整的 Google 网址。然后它将查询下载到本地文件中,并使用 HTML Agility Pack 打开该文件。

然后代码创建页面上所有链接的列表,并使用拼凑在一起的随机选择。

正如其他人所提到的,您需要获得 Google 的许可才能在他们的服务器上运行代码。不这样做会使您违反规定并可能产生尴尬的后果。

另外,这段代码是指示性的;它不是模范,甚至不是可构建。这是获得您所追求的目标所需步骤的粗略概念。

您之前的设计试图与 Google 索引页上的控件进行交互,而这种方法在一开始就太脆弱了。初学者很难对其进行测试。

HTML 敏捷包在这里 http://htmlagilitypack.codeplex.com/wikipage?title=Examples

关于c# - 从 C# 中生成的搜索结果中选择一个随机链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553741/

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