从 google 获取第一个搜索结果
Get First Search Result from google
我目前正在尝试使用 Powershell 从特定站点抓取 link 页面。编写了当前代码的变体,但本质上是一样的。
我正在尝试为搜索 google 搜索结果获取 URL。我添加了下面的屏幕截图来解释我希望抓取的内容。
到目前为止,我有以下代码将文本转换为成功的搜索,并且在使用 Invoke-WebRequest 调用时作为 expected.however 工作,我没有得到任何有意义的结果。使用带有 link 的浏览器时,它可以成功运行
function Get-GoogleSEQueryString
{
param([string[]] $Query)
Add-Type -AssemblyName System.Web # To get UrlEncode()
$QueryString = ($Query | %{ [Web.HttpUtility]::UrlEncode($_)}) -join '+'
# Return the query string
$QueryString
}
$SearchString = "Requiem for an American Dream"
$QueryString = Get-GoogleSEQueryString $SearchString
$url = "http://www.google.com.au/?gfe_rd=cr&ei=ZuzTV_v6B7Du8weC8qsY#q="+$QueryString+"+site:IMDB.com"
#(Invoke-WebRequest -Uri $url).links | Where-Object {$_.href -like "http*"}
$t = Invoke-WebRequest -uri $url
$t.AllElements | Where {$_.innerhtml -like '*=*'} |Sort { $_.InnerHtml.Length } | Out-GridView
任何人都可以帮助解决这个问题吗?
将评论总结为答案,Google 的主搜索页面不包含 HTML 中的搜索结果。它只有一些容器,将在页面加载期间加载它并动态填充 HTML DOM。
当您下载页面时,您只会得到容器 HTML 而没有结果。如果您在 Google 搜索结果页面上 select 'View source',您实际上可以看到相同的结果。
您可以尝试其他搜索引擎或使用网络服务来获取数据。
您可以在此处了解有关 Google 网络服务的更多信息:https://developers.google.com/custom-search/json-api/v1/reference/cse/list
我目前正在尝试使用 Powershell 从特定站点抓取 link 页面。编写了当前代码的变体,但本质上是一样的。
我正在尝试为搜索 google 搜索结果获取 URL。我添加了下面的屏幕截图来解释我希望抓取的内容。
到目前为止,我有以下代码将文本转换为成功的搜索,并且在使用 Invoke-WebRequest 调用时作为 expected.however 工作,我没有得到任何有意义的结果。使用带有 link 的浏览器时,它可以成功运行
function Get-GoogleSEQueryString
{
param([string[]] $Query)
Add-Type -AssemblyName System.Web # To get UrlEncode()
$QueryString = ($Query | %{ [Web.HttpUtility]::UrlEncode($_)}) -join '+'
# Return the query string
$QueryString
}
$SearchString = "Requiem for an American Dream"
$QueryString = Get-GoogleSEQueryString $SearchString
$url = "http://www.google.com.au/?gfe_rd=cr&ei=ZuzTV_v6B7Du8weC8qsY#q="+$QueryString+"+site:IMDB.com"
#(Invoke-WebRequest -Uri $url).links | Where-Object {$_.href -like "http*"}
$t = Invoke-WebRequest -uri $url
$t.AllElements | Where {$_.innerhtml -like '*=*'} |Sort { $_.InnerHtml.Length } | Out-GridView
任何人都可以帮助解决这个问题吗?
将评论总结为答案,Google 的主搜索页面不包含 HTML 中的搜索结果。它只有一些容器,将在页面加载期间加载它并动态填充 HTML DOM。
当您下载页面时,您只会得到容器 HTML 而没有结果。如果您在 Google 搜索结果页面上 select 'View source',您实际上可以看到相同的结果。
您可以尝试其他搜索引擎或使用网络服务来获取数据。
您可以在此处了解有关 Google 网络服务的更多信息:https://developers.google.com/custom-search/json-api/v1/reference/cse/list