Выполните поиск в Google по формуле Excel и поместите результат в ячейку

До

Выполните поиск в Google по формуле Excel и поместите результат в ячейку

После (адреса добавлены)

Выполните поиск в Google по формуле Excel и поместите результат в ячейку

У меня есть таблица с названиями мест, и я хотел бы добавить адреса этих мест в следующую ячейку, используя формулу в Google Sheets. Я хотел бы сделать это, используя формулу для поиска результатов в Google, потому что я хочу также очистить многие другие значения и быстро изменить лист на своем телефоне по мере изменения моих потребностей. Таким образом, я хотел бы сделать это без использования какого-либо внешнего языка кодирования и даже без сценариев приложений Google, если я могу этого избежать.

Google Поиск данныхВыполните поиск в Google по формуле Excel и поместите результат в ячейку

Я нашел некоторую информацию о том, как сделать что-то подобное с формулой Excel здесь:

Использование Google Sheets в качестве базового парсера

На этом сайте показано, как выполнить поиск в Google по имени автора статьи с помощью формулы Excel в следующем формате:

=INDEX(IMPORTXML(A1,"//span[@itemprop='name']"),1)

Можете ли вы помочь мне изменить это, чтобы вернуть результат поиска Google в ячейку Excel?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
7 499
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Функция индекса, вероятно, могла бы быть удалена кем-то, кто лучше разбирается в XPath, но, тем не менее, нижеприведенное, кажется, работает надежно. Следующее будет вставлено в B2 вашего образца листа:

=index(IMPORTXML("http://www.google.com/search?&q = "&"Address+of+"&A2&"+in+british+columbia"&"&oq = "&"Address+of+"&A2&"+in+british+columbia","//span"), 15, 1)

Это основано на предположении, что все площадки расположены в Британской Колумбии. Вы можете параметризовать раздел поиска Google, чтобы добавить более широкий набор возможных местоположений поиска.

Недавно у меня была довольно похожая задача, и хотя я не смог применить ее в таблицах Google — потому что Google очень неохотно передает данные парсерам — я добился некоторого успеха с python. Мне пришлось применить заголовок, чтобы обманом заставить Google предоставить нам обычные данные страницы, чтобы мы могли получить универсальное описание класса «sXLaOe» для запросов, касающихся адресов. Кроме того, я уже сделал поисковые запросы в Excel, добавив вместе два разных столбца («Доктор» + имя + город + «адрес»), чтобы Google выдал нам «избранный фрагмент», который мы могли украсть.

Это немного медленно, поэтому я уверен, что кто-то мог бы сделать это немного быстрее, и это требует, чтобы вы заранее нашли описание класса, но это единственное решение, которое я мог заставить работать для меня. Кроме того, иногда вы не получаете предложенный адрес, и вы не хотите, чтобы вас выбросили из цикла for, отсюда и условие «попробовать».

import requests
from bs4 import BeautifulSoup
import pyexcel as pe


headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'}
doctorNames = pe.get_array(file_name='../location_here.xlsx') 

for i in doctorNames:
    try:
        url = 'https://google.com/search?q=' + str(i)
        request_result=requests.get(url, headers=headers)
        soup = BeautifulSoup(request_result.text,"lxml")
        mydivs = soup.find("div", {"class": "sXLaOe"}).get_text()
        print(mydivs)
    except:
        print("N/A")

Кроме того, само собой разумеется, что вам нужно будет захватить модули pyexcel и BeautifulSoup, чтобы запустить этот.

Другие вопросы по теме