Я следую этому руководству , чтобы узнать, как использовать безголовый Chrome в облаке Google, чтобы запустить сценарий, чтобы узнать, существуют ли какие-то страницы.
Как я не установлено Docker Я пробовал:
mikempc3@instance-1:~$ gcloud builds submit --tag gcr.io/my_service
ERROR: (gcloud.builds.submit) HTTPError 403: Insufficient Permission
Файл, который я хочу запустить, это:
import selenium
from collections import defaultdict
import json
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import ElementClickInterceptedException
import time
from selenium.common.exceptions import NoSuchElementException
import pandas as pd
import numpy as np
df_red = pd.read_csv("tickers_september_2017_updated.csv")
tradable = []
for ticker in df_red['Ticker']:
print(ticker)
location = "https://www.etoro.com/markets/" + ticker.lower()
driver.get(location) # vamaos al ticker
time.sleep(2)
current_url = driver.current_url # almacenamos la dirección donde realmente nos lleva
if current_url == location: # Si sigue siendo el mismo, significa que el teletipo es negociable.
tradable.append(ticker)
Я тоже пробовал с запросом, но страницы всегда существуют, да не перенаправлять, он отвечает на 200 Ok и действительный html, но этот html содержит iframe, и я подозреваю, что содержимое iframe динамически загружается js. Если так, то я боюсь, что сделать это без селена будет слишком сложно.
Обновление
Я нашел репозиторий со скриптами, которые, кажется, устанавливают необходимые вещи в запустить селен. Казалось, это хороший способ проверить, существуют ли страницы. Итак, я выполнил инструкции и получил ожидаемый результат, но когда я хочу запустить свой собственный сценарий, у меня появляется следующая ошибка:
mikempc3@instance-1:~$ python3 tradable.py
Traceback (most recent call last):
File "tradable.py", line 26, in <module>
driver = webdriver.Chrome()
File "/home/mikempc3/.local/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/home/mikempc3/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/mikempc3/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/mikempc3/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/mikempc3/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_respons
e
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.9.0-12-amd64 x86_64)
Обновление 2
Теперь я начинаю с Docker