链接或突出显示特定的Google搜索结果

时间:2017-10-08 18:36:36

标签: html vb.net

我有一个VB.net工具,它接收来自用户的两个字符串:用于搜索Google的字符串,以及要查找的网站域。输入的域名用*屏蔽(如G ** gle.com),所以我将“*”替换为“。”这将匹配正则表达式中的任何字符。

该工具会检查每个Google结果页面的来源(截至第50页),并在找到匹配项后链接用户:

    'Search string
    Dim strSearch As String = InputBox("Enter search string", "Search string")

    'Website to look for
    Dim strWebsite As String = InputBox("Enter website to look for", "website")

    'Remote any trailing or leading spaces
    strSearch = HttpUtility.UrlEncode(strSearch).Trim
    strWebsite = strWebsite.Replace("*", ".").Trim

    Dim wbClient As New WebClient
    For i As Integer = 1 To 50
        'The Google results page
        Dim strURL As String = "https://www.google.com/search?q=" & strSearch & "&start=" & i * 10

        'Get page source of the results page
        Dim strResults As String = wbClient.DownloadString(strURL)

        'If the current page includes the website we're looking for then
        If Regex.IsMatch(strResults, strWebsite, RegexOptions.IgnoreCase) Then
            MsgBox("Page " & i)

            'Open the page
            Process.Start(strURL)
            Exit For
        End If
    Next

此代码将打开正确的页面,但我希望它滚动到匹配的Google结果(有点像使用#使用html链接到同一页面上的目标链接时)。

Google是否有可用于实现此目的的任何网址参数,或者每个结果都有一个我可以在#后添加到网址的ID?我花了一段时间搜索但找不到任何东西。如果没有,我将不得不考虑其他事情或完全跳过它。

1 个答案:

答案 0 :(得分:0)

看起来每个搜索结果网址上的小下拉箭头(请参阅图片)的ID为am-b0,其中0是结果的索引。你必须使用不同的方法来获得正则表达式匹配的正确索引,但我认为这应该有效。

此图片是网址的第一个(索引0)搜索结果:

https://www.google.com/search?q=test

显然,这是一个非常脆弱的解决方案,因为谷歌可以随时改变一些东西来打破这个:

ID of search result

以防万一不清楚,链接到这个结果将是:

https://www.google.com/search?q=test#am-b0