python-3.x - 如何通过在 Google Cloud Run 中启动的脚本检查网页是否存在?
问题描述
我正在按照本教程学习如何在 Google 云中使用无头 Chrome 以运行脚本以查看是否存在某些页面。
由于我没有安装 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 动态加载的。如果是这样,恐怕没有硒就太复杂了。
更新
我找到了一个包含脚本的存储库,这些脚本似乎安装了运行 selenium 所需的东西。这似乎是检查页面是否存在的好方法。因此,我按照说明进行操作并获得了预期的输出,但是当我想启动自己的脚本时,出现以下错误:
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
解决方案
推荐阅读
- sql - 为没有任何数据的行获取 0
- java - Java Stream 在偶数指针处选取值
- arangodb - ArangoDB 非常慢的聚合
- django - Django + postgreSQL:为什么即使我没有提供数据库信息,迁移也能奏效?
- flutter - 删除蜂巢框中的元素时遇到问题
- google-apps-script - 如何从单元格值中提取 URL 而不会超时?
- java - 忽略 Thymeleaf 中 href 中的空参数
- c# - 如果我将迷宫大小设置为 30 on 30,为什么迷宫大小是 27 on 27?
- tiff - 使用 gdal_calc.py 将 nodata 值分配给值高于特定阈值的栅格像元
- pentaho - Pentaho:基于 Excel“白名单”过滤数据集