到目前为止我的代码
foreach (var listBoxItem in listBox_google_urls.Items)
{
var document = new HtmlWeb().Load(listBoxItem.ToString());
var files = document.DocumentNode.Descendants("a").Select(a => a.GetAttributeValue("href", ".mp3")).Where(h => h.Contains(".mp3")).ToArray();
listbox_urls.Items.AddRange(files);
}
这就是listBox_google_urls.Items
web_search.Navigate("https://www.google.com/search?q=" + val + "+(mp3|wav|ac3|ogg|flac|wma|m4a) -inurl:(jsp|pl|php|html|aspx|htm|cf|shtml) intitle:index.of -inurl:(listen77|mp3raid|mp3toss|mp3drug|index_of|wallywashis)");
var search_results = this.web_search.Document.Links.Cast<HtmlElement>().Select(a => a.GetAttribute("href")).Where(h => h.Contains("http://")).ToArray();
listBox_google_urls.Items.AddRange(search_results);
listBoxItem.ToString()输出example
问题是这个méthode工作,但只是scrab标题的链接 他们是我如何解决它?并且已经感谢了
答案 0 :(得分:1)
你的代码看起来很好,只是不确定为什么你默认为“.mp3”然后返回所有有“.mp3”的代码?你最终得到一组有效的.mp3网址,然后是一大堆“.mp3”字符串?我只是躲进了一个rando谷歌搜索页面,并在href属性中查找了所有网址,其中包含“mail”字样,这里有结果
希望这能回答你的问题。如果你能给我一些更多的信息,也许我可以帮助更多
试试这个
var document = new HtmlWeb().Load("http://s1.mymrmusic2.com/hmusic/Album/Foreign%20Albums/VA%20-%20Billboard%20Hot%20100%20(02%20April%202016)/VA%20-%20Billboard%20Hot%20100%20(02%20April%202016)%20%5B320%5D/");
var files = document.DocumentNode.Descendants("a")
.Where(a => !string.IsNullOrEmpty(a.GetAttributeValue("href", string.Empty)) && a.GetAttributeValue("href", string.Empty).Contains(".mp3"))
.Select(a => new
{
Link = a.GetAttributeValue("href", string.Empty),
Text = a.FirstChild.InnerText
}).ToList();
也许尝试这个选项
foreach (var listBoxItem in listBox_google_urls.Items)
{
var document = new HtmlWeb().Load(listBoxItem.ToString());
var files = document.DocumentNode.Descendants("a")
.Select(a => a.GetAttributeValue("href", ".mp3"))
.Where(h => h.Contains(".mp3"))
.Select(a => listBoxItem.ToString() + a).ToArray();
listbox_urls.Items.AddRange(files);
}