首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Html敏捷包从Google搜索中的屏幕刮文本功能片段Url结果

使用Html敏捷包从Google搜索中的屏幕刮文本功能片段Url结果
EN

Stack Overflow用户
提问于 2020-11-27 19:23:32
回答 1查看 457关注 0票数 0

我试图弄清楚,在不使用Google Search 特色片段的情况下,免费获得个人非商业桌面应用程序的结果是否合法和可能:

代码语言:javascript
复制
string inputUrl = "http://google.com/search?q=" + "who is Elvis Presley";

或者:

代码语言:javascript
复制
 string inputUrl = "http://google.com/search?search?client=firefox-b-d&q=who+is+elvis+presley";

我试图在C# WinForms桌面应用程序中使用C#

代码语言:javascript
复制
string inputUrl = "http://somesite.net/";

假设在list中添加了结果:

代码语言:javascript
复制
 List<string> outputList = new List<string>();

我可以屏蔽ExtractHref(inputUrl);的链接,但是我试图弄清楚,如何只从url获取文本单词和句子:

代码语言:javascript
复制
    private void ExtractHref(string URL)
    {
        lst.Clear();
        HtmlWeb web = new HtmlWeb();
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc = web.Load(URL);

        foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
        {
            HtmlAttribute att = link.Attributes["href"];

            if (att.Value.Contains("a"))
            {                   
                outputList .Add(att.Value);                   
            }
        }

        textBox1.Text = String.Join(Environment.NewLine, outputList); 
    }

我的目标是获得Google的结果:https://www.google.com/search?search?client=firefox-b-d&q=who+is+elvis+presley展示了特色片段搜索:

埃尔维斯·普雷斯利( Elvis Presley ),完全是埃尔维斯·亚伦·普雷斯利( Elvis Aaron Presley )或埃尔维斯·阿隆·普雷斯利( Elvis Aron Presley )(1935年1月8日生于美国密西西比州图佩洛--1977年8月16日,田纳西州孟菲斯),美国流行歌手“摇滚乐之王”(King of rock and Roll),从20世纪50年代中期至20世纪50年代中期一直是摇滚音乐的主要表演者之一。

维基百科的主题:

埃尔维斯·亚伦·普雷斯利( Elvis Aaron Presley ),也称猫王,是一名美国歌手、音乐家和演员。他被认为是20世纪最重要的文化象征之一,经常被称为“摇滚之王”或“国王”。

EN

回答 1

Stack Overflow用户

发布于 2020-11-27 19:30:58

您只需要更新for循环来读取href值,因为XPath已经过滤了<a>元素,没有进一步的检查。

代码语言:javascript
复制
    HtmlNode[] nodes = doc.DocumentNode
            .SelectNodes("//a[@href]")
            .ToArray();
        foreach (HtmlNode item in nodes)
        {
            Console.WriteLine(item.InnerHtml);
        }
        List<string> outputList = new List<string>();

        foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@class='rc']"))
        {
            outputList.Add(link.InnerText);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65042824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档