Google предоставляет различные API-интерфейсы для программистов, чтобы использовать их бесплатно и за разумные деньги для длительного и широкого использования.Следующее может противоречить условиям использования Google и предоставлено здесь только для академического обсуждения;) Кроме того, решения такого типа обычно недолговечны, поскольку они уязвимы для незначительных выпусков контента, на который они полагаются.
Это может быть сложно, поскольку www.google.com
, кажется, отвечает разными страницами, в зависимости от того, какой браузер звонит.Я не установил chromium
и не могу проверить, какой ответ он получает, но TWebBrowser
(IE 11) получает что-то близкое к тому, что вы ожидаете.
Посмотрите на источник (View source
во всплывающем меню r-click TWebBrowser
, View page source
во всплывающем меню r-click Chrome
...), чтобы проверить типы элементов и имена полей.
Следование основано на ответе, который получает TWebBrowser
, поскольку он отвечает на ваш вопрос.
Вы ищете на странице https://www.google.com
тег html
A
с полем id
чье значение btnK
.Но такой вещи не существует!Не на странице, которую получает TWebBrowser
.
Вы, очевидно, ищете это:
<input value="Google Search" aria-label="Google Search" name="btnK" type="submit">
Как видите, это тег input
с полем name
whosзначение равно btnK
Итак, измените ваш код так, чтобы первая строка стала
thelink:= WebBrowser1.OleObject.Document.all.tags('input');
, а шестая строка стала
if Pos('btnK', thelink.Item(x).name) > 0 then
и действительно, она активироваласьпоиск, когда вы звоните click
на нем.
Но вы можете сделать это проще.Посмотрите URL-адрес после того, как вы ввели что-то (скажем, «Delphi») в поле поиска https://www.google.com
.Для меня это выглядит следующим образом:
https://www.google.com/search?q=delphi&rlz=1C1Y...
Интересная часть 'q=delphi'
(она может быть не сразу после знака вопроса, а дальше в URL).
Таким образом, вы можете просто иметь поле для ввода слова для поиска и веб-браузер для отображения результата
procedure TForm1.Button1Click(Sender: TObject);
const
search = 'https://www.google.com/search?q=';
begin
WebBrowser1.Navigate(search + Edit1.Text);
end;