Можно ли использовать ImportXML () для извлечения данных из поисковой выдачи?

#google-sheets #google-sheets-importxml

#google-sheets #google-sheets-формула

Вопрос:

Я прочитал статью, в которой объяснялось, как в Google Sheets вы можете использовать функцию ImportXML () для доступа к веб-странице, извлечения с нее данных и помещения результатов в ячейку. Например, если я помещу URL веб-сайта в ячейку A1 и следующую формулу в ячейку A2:

 =importxml(A1,"//meta[@name='description']/@content")
  

затем A2 покажет содержимое тега meta description на веб-странице, указанной в A1.

Я хотел бы использовать аналогичный подход, но поместить запрос Google в ячейку A1.

Я скопировал следующую формулу (которую я нашел в статье в британском журнале) в ячейку A1:

 =ArrayFormula(regexreplace(regexextract(importxml("https://www.google.co.uk/search?q=trade balanceamp;pws=0amp;gl=UKamp;num=50","//h3[@class='r']/a/@href"), "http.*amp;sab"), "amp;sa", ""))
  

Он заполнил 50 строк данных.

Затем я изменил параметр num на «num = 20», и ответ был «Не удалось получить URL …»

Затем я ввел ту же формулу в другую ячейку, заменив URL на «https://www.google.com» и параметр gl с «gl= US», и ответ снова был «Не удалось получить URL …»

Похоже, что Google в Великобритании может разрешить вам делать это периодически, а Google в США — нет.

Кто-нибудь может предложить альтернативу? Вам нужен ключ для получения разрешения?

Кстати, я читал на форуме, что вы можете использовать пользовательский поисковый API Google и UrlFetch() для сбора результатов поиска и заполнения таблицы Google. Но прежде чем попробовать это, я подумал, что сначала спрошу о возможности использования ImportXML.

Спасибо.

Комментарии:

1. итак, какой веб-сайт вы хотите очистить конкретно? потому что это зависит от каждого сайта, возможно это или нет

2. Спасибо за ответ. Я хочу очистить страницу результатов поиска Google. В моем примере я использовал вызов этой функции: importxml(» google.co.uk /…

Ответ №1:

В последнее время Google блокирует поисковые запросы, сделанные как из Apps Scripts, так и из Google Sheets, хотя запросы выполняются с одного из их собственных IP-адресов. Вероятно, они делают это, чтобы предотвратить удаление. В некоторых случаях это работает, и вы можете очистить поиск Google, однако время ограничено, поэтому результаты исчезнут через несколько минут / часов. Вы можете попробовать очистить Bing, DuckDuckGo или другие поисковые системы.

Комментарии:

1. Спасибо. Я где-то читал, что пользовательский поисковый API Google и UrlFetch() — это еще один способ очистки поисковой выдачи, но я их еще не изучал. Есть идеи, могут ли они сработать?

2. Я рассмотрю возможность извлечения данных из Bing. Спасибо, что упомянули об этом.

3. понятия не имею о пользовательском поисковом API Google и UrlFetch (). никогда не тестировал

4. Если вы знакомы с python, возможно, вы можете попробовать библиотеку googlesearch, которая извлекает URL-адреса с ключевыми словами для поиска всего несколькими строками кода