Я хочу заполнить веб-форму, отправить свой запрос и загрузить полученные данные. В некоторых полях есть возможность раскрывающегося меню или ввода поискового запроса, разделы также можно оставить пустыми (если все разделы оставлены пустыми, загружается вся база данных), нажатие кнопки «поиск и загрузка» должно вызвать загрузка файла.
Вот что я пробовал (выбирая все записи для вида "Salmo salar") на основе этот вопрос. Я использовал "Инструменты разработчика" своего браузера (Opera), чтобы проверить элементы страницы и определить имена всех возможных полей:
library(httr)
url <- "https://nzffdms.niwa.co.nz/search"
fd <- list(
search_catchment_no_name = "",
search_river_lake = "",
search_sampling_locality = "",
search_fishing_method = "",
search_start_year = "",
search_end_year = "",
search_species = "Salmo salar", # species of interest
search_download_format = 1, # select csv file format
submit = "Search and Download"
)
POST(url, body = fd, encode = "form")
Я надеялся, что это приведет к загрузке файла csv (все записи для вида "Salmo salar"), но без загрузки файлов (но выводит это (список из 10, только показывающий первый бит):
Response [https://nzffdms.niwa.co.nz/search]
Date: 2019-10-02 23:35
Status: 200
Content-Type: text/html; charset=utf-8
Size: 19.1 kB
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; c...
<meta name="title" content="NZ Freshwater Fish Database...
<meta name="description" content="NIWA NZ Freshwater Fish...
<meta name="keywords" content="NIWA, NZ, Freshwater Fish" />
<meta name="language" content="en" />
<meta name="robots" content="index, follow />
...
Редактировать
Я думаю, проблема в том, как я вызываю кнопку Search and download
, когда при проверке веб-страницы большинство полей выглядят так:
# end year field
<input maxlength="4" class="form-control" type="text" name="search[end_year]" id="search_end_year">
Но элементы кнопки search and download
не имеют опции name
или id
:
<input type="submit" value="Search and Download" class="btn btn-primary btn-md">
Также я только что заметил, что есть скрытое поле, может мне нужно это определить?
<input type="hidden" name="search[_csrf_token]" value="d1530f09c1ce8110b5163bd100cb0d67" id="search__csrf_token">
Любые советы о том, как я могу получить загрузку файла, были бы очень признательны.