Как нажать на элемент Xpath и загрузить документ CSV, используя скрипт оболочки? - PullRequest
0 голосов
/ 23 сентября 2018

Я создаю сценарий R, который автоматизирует загрузку CSV-файла с веб-сайта каждый день.Сценарий отлично работает на моем персональном компьютере, но он не запускается на моем компьютере на работе (я использую пакет RSelenium) (как проблема с брандмауэром, так и проблема с программным обеспечением - Chrome продолжает падать, когда сценарий запрашивает его открыть удаленно).

Я думал о том, как использовать curl в сценарии оболочки, чтобы найти Xpath (который у меня уже есть) и щелкнуть элемент (кнопка «Загрузить CSV») с помощью сценария оболочки.Упомянутый Xpath является "//*[@id="eventSearch"]/div[1]/div/div[2]/div/button".

Веб-сайт ниже: https://www.vegasmeansbusiness.com/planning-tools/convention-calendar/

Обратите внимание, что при переходе на веб-сайт вы увидите кнопку «Загрузить события в формате CSV».

До сих пор я обращался к телу и пытался загрузить данные безрезультатно.Ниже приведено то, что у меня есть (справедливо сказать, что я очень мало знаю о сценариях оболочки), поэтому любая помощь приветствуется.

curl -sL "https://www.vegasmeansbusiness.com/planning-tools/convention-calendar/" xpup '/*/body

1 Ответ

0 голосов
/ 24 сентября 2018

Свертывать не удается, поскольку фактические данные извлекаются из конечной точки API REST через JSON, а затем преобразуются и используются в качестве CSV.

Либо используйте автоматизацию браузера, такую ​​как Selenium, либо напрямую обращайтесь к API.

Вы можете попробовать запросить конечную точку самостоятельно:

curl -sL "https://www.vegasmeansbusiness.com/includes/rest_v2/plugins_events_events/find/?json=%7B%22filter%22%3A%7B%22calendarid%22%3A%22conventions%22%2C%22dates%22%3A%7B%22%24elemMatch%22%3A%7B%22eventDate%22%3A%7B%22%24gte%22%3A%7B%22%24date%22%3A%222018-09-23T07%3A00%3A00.000Z%22%7D%2C%22%24lte%22%3A%7B%22%24date%22%3A%222019-09-24T06%3A59%3A59.000Z%22%7D%7D%7D%7D%2C%22convention.roomattend%22%3A%7B%22%24gte%22%3A100%7D%7D%2C%22options%22%3A%7B%22skip%22%3A0%2C%22fields%22%3A%7B%22title%22%3A1%2C%22startDate%22%3A1%2C%22endDate%22%3A1%2C%22convention_facilities.title%22%3A1%2C%22convention.roomattend%22%3A1%2C%22convention.hostcompany%22%3A1%2C%22convention.hosturl%22%3A1%7D%2C%22castDocs%22%3Afalse%2C%22count%22%3Afalse%2C%22sort%22%3A%7B%22startDate%22%3A1%2C%22title%22%3A1%7D%2C%22hooks%22%3A%5B%22afterFind_convention_facilities%22%5D%7D%7D&token=8d1a7610fe6a76ff80a76a1e1a481d2e" > events.json

Затем используйте любой инструмент или скрипт для преобразования json ton CSV.

Тем не менее, результат может выглядеть немного иначе, и это может сломаться в любой момент, если есть какие-либо изменения на другой стороне.В строке URL также есть токен, который в определенный момент истекает.

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