C#WinForm程序实现联网歌曲搜索

风的路过 2012-04-01 11:43:25
我想实现歌曲搜索,搜索的结果来自是酷狗,百度,等。用listBox等控件显示。怎样获取歌曲对应的歌手头像,就像酷狗一样。
...全文
1002 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
风的路过 2012-04-22
  • 打赏
  • 举报
回复
这么久了,我结贴吧。。。虽然问题没有很好的解决,但还是要感谢各位的热心回答!!!
orochiheart 2012-04-02
  • 打赏
  • 举报
回复
我做过winform下采集百度搜索出来的内容 要的话我就贴出来
「已注销」 2012-04-02
  • 打赏
  • 举报
回复
这……貌似很复杂啊
salmonl 2012-04-02
  • 打赏
  • 举报
回复
同意楼上的观点
堕之羽翼 2012-04-02
  • 打赏
  • 举报
回复
= =这个东西就复杂了。你可以通过webRequest 从百度以及搜狗等先查询出结果,然后利用正则搜索你要的数据,最后放进listbox
风的路过 2012-04-02
  • 打赏
  • 举报
回复
谢谢给我回答。问题是我不知道怎么获取百度后酷狗搜索后的地址连接等,数据。求助!
orochiheart 2012-04-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:

我做过winform下采集百度搜索出来的内容 要的话我就贴出来

贴出来学习下,诚心求教!
[/Quote]
已贴出。。。
orochiheart 2012-04-02
  • 打赏
  • 举报
回复
我用的是开源类库HtmlAgilityPack,很强大的 这个类库可以用C#操作DOM

private void button10_Click(object sender, EventArgs e)
{
if (ValidData.IsEmpty(textBox1.Text, "关键字不能为空,请核对!") == false) { textBox2.Focus(); return; }
else if (ValidData.IsEmpty(textBox2.Text, "长度不能为空,请核对!") == false) { textBox2.Focus(); return; }
else if (ValidData.IsNumber(textBox2.Text, "数量必须为整数") == false) { textBox2.Focus(); return; }

if (int.Parse(textBox2.Text) > 100)
{
MessageBox.Show("数量不能超过100(百度内置上限)", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

string url = "http://www.baidu.com/s?wd=" + textBox1.Text + "&rn=" + int.Parse(textBox2.Text) + "";
HtmlAgilityPack.HtmlDocument hd = GetHtmlDocumentFromLink(url);

this.Text = getTitle(hd);
MainContent(hd);
}


public void MainContent(HtmlAgilityPack.HtmlDocument hd)
{
if (hd == null)
return;
richTextBox3.Text = "";
//贴吧、新闻、商品搜索、软件
SpecialType(hd);

for (int i = 0; i < int.Parse(textBox2.Text)+10; i++)
{
try
{
HtmlNode navNode = hd.GetElementbyId(i.ToString());
string allXPath = navNode.XPath + "/tr[1]/td[1]/h3[1]";
string title = hd.DocumentNode.SelectSingleNode(allXPath).InnerText;
richTextBox3.AppendText("标题:" + title.Trim() + "\r\n");
////地址
string adr = hd.DocumentNode.SelectSingleNode(allXPath + "/a[1]").Attributes["href"].Value;
richTextBox3.AppendText("地址:" + adr + "\r\n");

//百度快照日期
string pDateXPath = navNode.XPath + "/tr[1]/td[1]/font[1]/span[1]";
string pDate = hd.DocumentNode.SelectSingleNode(pDateXPath).InnerText;
if (pDate != string.Empty)
{
richTextBox3.AppendText("百度快照:" + pDate + "\r\n");
string dataP = Regex.Match(pDate, @"\d{4}([-/])\d{1,2}\1\d{1,2}").Value;
richTextBox3.AppendText("快照日期:" + dataP + "\r\n\r\n");
}
else
richTextBox3.AppendText("\r\n\r\n");
}
catch (Exception)
{
richTextBox3.AppendText("\r\n");
}
}
}
lhonyun_lhy 2012-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

我做过winform下采集百度搜索出来的内容 要的话我就贴出来
[/Quote]
贴出来学习下,诚心求教!
devmiao 2012-04-01
  • 打赏
  • 举报
回复
可以使用webbrowser控件哦。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧