我有一个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?我花了一段时间搜索但找不到任何东西。如果没有,我将不得不考虑其他事情或完全跳过它。