Скачать список фотографий автомобилей на основе списка их имен - PullRequest
0 голосов
/ 20 февраля 2020

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

Я могу сделать это вручную, коснувшись модели автомобиля в Google и сохранив или скопировав URL первой. картинка в гугле результат. Но у меня около 800 наименований моделей автомобилей, и это отнимает много времени.

Как я могу это сделать? Спасибо

1 Ответ

1 голос
/ 20 февраля 2020

Вот функция, которую вы можете использовать в R. Сначала вам нужно будет install.packages("rvest") и install.packages("httr")

library(rvest)
library(httr)

get_first_google_image <- function(car_name)
{
  site <- "https://www.google.com"
  query <- paste0(site, "/search?q=", url_escape(car_name))

  image_page <- read_html(query)                          %>% 
    html_nodes(xpath = "//a[contains(text(), 'Images')]") %>% 
    html_attr("href")

  paste0(site, image_page)             %>%
    read_html(image_page)              %>%
    html_nodes("img")                  %>% 
    html_attr("src")                   %>% 
    {grep("gstatic", ., value = TRUE)} %>% 
    `[`(1)                             %>%
    httr::GET()                        %>%
    httr::content("raw")               %>%
    writeBin(paste0("~/", car_name, ".jpg"))
}

Чтобы использовать ее, просто наберите

get_first_google_image("Mazda MX5")

Затем будет сохранено первое попадание из поиска картинок Google в формате jpeg в ваш домашний каталог.

Если вы хотите, чтобы все ваши машины назывались в R, просто выберите и скопируйте столбец в Excel, а затем в R do

car_names <- readClipboard()

Тогда вы можете сделать

for(i in seq_along(car_names) get_first_google_image(car_names[i])

Это может занять довольно много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...