Добрый день. Есть скрипт на Python:
from selenium import webdriver
import json
import time
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--no-sandbox')
chromeOptions.add_argument('--headless')
chromeOptions.add_argument("--enable-javascript")
driver = webdriver.Chrome('/usr/bin/chromedriver',chrome_options=chromeOptions)
driver.get('https://api.investing.com/api/financialdata/assets/equitiesByCountry/default?fields-list=id%2Cname%2Csymbol%2Chigh%2Clow%2Clast%2ClastPairDecimal%2Cchange%2CchangePercent%2Cvolume%2Ctime%2CisOpen%2Curl%2Cflag%2CcountryNameTranslated%2CexchangeId%2CperformanceDay%2CperformanceWeek%2CperformanceMonth%2CperformanceYtd%2CperformanceYear%2Cperformance3Year%2CtechnicalHour%2CtechnicalDay%2CtechnicalWeek%2CtechnicalMonth%2CavgVolume%2CfundamentalMarketCap%2CfundamentalRevenue%2CfundamentalRatio%2CfundamentalBeta&country-id=5&page=0&page-size=10&include-major-indices=false&include-additional-indices=false&include-primary-sectors=false&include-other-indices=false&limit=0')
time.sleep(1)
print(driver.page_source)
driver.quit()
Который нормально отрабатывает под Windows 10 (Python 3.7).
Я закинул этот скрипт на VPS с CentOS 7. Установил туда Python 3.6, создал окружение, установил последнюю версию Google Chrome, скачал соответствующий WebDriver.
Пытаюсь запустить скрипт, в итоге сайт, который запрашивается в скрипте выдаёт:
Enable JavaScript and cookies to continue
JS я включил в параметрах перед использованием запроса, Cookie насколько я знаю включены по умолчанию, но почему-то именно на VPS сайт выдаёт ошибку, у меня на Windows работает корректно.
Запрашиваемый сайт имеет защиту от cloudflare. Сначала идёт переход по адресу, редирект на сервера cloudflare, после этого вычисляется через JS и присваивается куки, потом отдаются данные в случае успеха.
Подскажите пожалуйста, куда копать с этим CentOS и что может быть не так. Спасибо.