我想知道如何检查超链接文本和链接存在于URL或不使用c#

本文关键字:URL 存在 链接 文本 何检查 想知道 超链接 检查 | 更新日期: 2023-09-27 18:06:25

我想创建一个工具,可以帮助我检查一个链接和它的文本是否存在于网页或不使用c#…也想知道如果链接是dofollow或nofollow。这里的例子是一个wiki站点的链接https://en.wikipedia.org/wiki/Main_Page

你可以在文章正文中看到很多链接文本,比如艺术,历史等。我想检查"艺术"链接文本是否存在与正确的超链接(https://en.wikipedia.org/wiki/Portal:Arts),如果它是nofollow或dofollow。我要创建一个工具,所以请帮助我。

该项目的主要思想是监控在线文章中的链接文本及其链接,无论它是否存在或被某人删除。还要知道是dofollow还是nofollow

我想知道如何检查超链接文本和链接存在于URL或不使用c#

我不确定你所说的nofollow或dofollow是什么意思,但这里有一个快速的代码示例来迭代网页上的链接。这应该是一个很好的开始。如果你正在寻找一些更健壮的东西,你可以看看HTML敏捷包。使用起来有点复杂,但是你可以得到网页的DOM视图。

由于这是使用WebBrowser控件,因此确保包含System.Windows.Forms引用。如果您必须使用不允许Forms对象的项目类型,则可以使用WebClientWebRequest,但这两种类型都需要更多的努力才能工作。

static void CheckLink() {
    WebBrowser wb = new WebBrowser();
    wb.DocumentCompleted += wb_DocumentCompleted;
    //Pass FireFox as user agnent to prevent getting Mobile site
    wb.Navigate("https://en.wikipedia.org/wiki/Main_Page",null ,null,"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
}
static void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
    WebBrowser wb = (WebBrowser)sender;
    String html = wb.DocumentText;
    //find BODY tag
    int BodyPosition = html.ToUpper().IndexOf("<BODY");
    int Position = html.ToUpper().IndexOf("<A HREF", BodyPosition);
    while (Position  > -1) {
        int BeginUrlPosition = html.IndexOf("'"", Position);
        int EndUrlPosition = html.IndexOf("'"", BeginUrlPosition + 1);
        String link = html.Substring(BeginUrlPosition+1, EndUrlPosition - BeginUrlPosition -1);
        //Do Somthing with found link
        //Look for next Link
        Position = html.ToUpper().IndexOf("<A HREF", EndUrlPosition);
    }
}