2016-09-10 8 views
0

В настоящее время я пытаюсь использовать Powershell для очистки страниц ссылок с определенного сайта. Выложили вариацию текущего кода, но это очень важно.Получить первый поиск Результат от google

Я пытаюсь получить URL-адрес для поиска результатов поиска Google. Я добавил скриншот ниже, чтобы объяснить, что я надеюсь схватить.

enter image description here

Я до сих пор есть следующий код, который преобразующий текст успешного поиска и работы в качестве expected.however при вызове с Invoke-WebRequest я не получаю каких-либо значимых результатов. при использовании браузера со ссылкой он работает нормально

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 

Может ли кто-либо любезно помочь в решении этой проблемы?

+0

Вы на самом деле не сказать, что проблема? Однако, когда вызывается с Invoke-WebRequest _..... – Matt

+2

Страница Google динамически заполняется, поэтому ответ не содержит ничего полезного, вам нужно использовать InternetExplorer.Application, есть много примеров этого. Или переключитесь на другую поисковую систему с API. – wOxxOm

+0

, вы можете взглянуть на Microsoft Cognitive Services https://www.microsoft.com/cognitive-services/en-us/apis –

ответ

0

Чтобы обобщить комментарии в качестве ответа, основная страница поиска Google не содержит результат поиска в HTML. Он содержит только несколько контейнеров и загружает их во время загрузки страницы и динамически заполняет HTML DOM.

При загрузке страницы вы получаете HTML-код контейнера без результатов. Фактически вы можете увидеть то же самое, если на странице результатов поиска Google выбрать «Просмотр источника».

Вы можете попробовать другие поисковые системы или использовать веб-службы для извлечения данных.

Вы можете узнать больше о веб-службы компании Google здесь: https://developers.google.com/custom-search/json-api/v1/reference/cse/list