问题 HTML链接收集和过滤

Cruizrisner.

新成员
加入
2014年7月8日
消息
2
编程经验
Beginner
我正在尝试在网页的来源中获取特定链接

以下是我为执行该事件的按钮的操作:

C#:
        private void button3_Click(object sender, EventArgs e)
        {
            HtmlElement download_link = webBrowser1.Document.GetElementById("dl_link");
            HtmlElementCollection links = download_link.GetElementsByTagName("a");
           
            
            string link = links[0].GetAttribute("href");
            if (link.StartsWith("http://www.sitenamehere.org/get?ab=128"))
            {
                webBrowser1.Navigate(link);
            }
            else
            {
                MessageBox.Show("Linking Error");
            }
            
            
            
        }

这里是它的检索到的网页的一部分:

HTML:
    <div id="dl_link" style="display: block;">
    <a style="display:none" href="/get?video_id=KMU0tzLwhbE&h=-1&r=-1.1">
    <b>Download</b>
    </a>
    <a style="display:none" href="/get?video_id=KMU0tzLwhbE&h=-1&r=-1.1">
    <b>Download</b>
    </a>
    <a style="display:none" href="/get?video_id=KMU0tzLwhbE&h=-1&r=-1.1">
    <b>Download</b>
    </a>
    <a href="/get?ab=128&video_id=KMU0tzLwhbE&h=54c0c03c1c950711ce66fa8e8e840d09&r=1404821250631.1522271859">
    <b>Download</b>
    </a>
    <a style="display:none" href="/get?video_id=KMU0tzLwhbE&h=-1&r=-1.1">
    <b>Download</b>
    </a>
    </div>

问题是,它一直在给我错误的链接,因为它们出现在正确的之前。

注意:kmu0tzlwhwhe是特定于文件的,因此它根据我的文件而变化。 H = 54C0C03C1C950711CE66FA8E8E840D09&R = 1404821250631.1522271859是特定于会话(刷新页面将改变此)。 H = -1&r = -1.1(虚假链接的一部分)是常量
 

InkedGFX..

众所周知的成员
加入
2013年2月2日
消息
142
编程经验
Beginner
尝试使用

foreach (string link in Links)
{
 if (link == [COLOR=#3E3E3E]"http://www.sitenamehere.org/get?ab=128")
[/COLOR]{
do something with the link here
}
}


*注意*未测试

希望这可以帮助
- inkedgfx.
 

Cruizrisner.

新成员
加入
2014年7月8日
消息
2
编程经验
Beginner
try using

foreach (string link in Links)
{
 if (link == [COLOR=#3E3E3E]"http://www.sitenamehere.org/get?ab=128")
[/COLOR]{
do something with the link here
}
}


*注意*未测试

希望这可以帮助
- inkedgfx.


谢谢,但我已经解决了它,我使用了Follwing代码

C#:
            HtmlElement download_link = webBrowser1.Document.GetElementById("dl_link");
            HtmlElementCollection links = download_link.GetElementsByTagName("a");

            foreach (HtmlElement element in links)
            {
                string style = element.GetAttribute("style");
                string link = element.GetAttribute("href");
                if (style != "display:none" && link.StartsWith("http://www.sitenamehere.org/get?ab=128"))
                {
                    webBrowser1.Navigate(link);
                    break;

                }
                
            }
 
最佳 底部