selenium - 硒网页抓取。即使在我的本地机器上运行,ec2 实例也无法找到元素
问题描述
我正在尝试从网页中抓取数据。下面的代码适用于我的本地窗口机器,但不适用于 ec2 linux 实例。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
option = webdriver.firefox.options.Options()
option.add_argument("--headless")
driver = webdriver.Firefox(executable_path=dir_firefox_driver, options=option)
driver.get("https://www.mwave.me/en/mcountdown")
time.sleep(3)
driver.set_window_size(600, 800)
temp = driver.find_element_by_css_selector(".chart_view_more button")
我看到了等到元素出现的文章,所以我尝试了下面的代码
driver = webdriver.Firefox(executable_path=dir_firefox_driver, options=option)
driver.get("https://www.mwave.me/en/mcountdown")
time.sleep(3)
driver.set_window_size(600, 800)
try:
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".chart_view_more button"))
)
except:
print("there is no element")
quit()
temp = driver.find_element_by_css_selector(".chart_view_more button")
它也不起作用。我在本地机器和 ec2 实例中找不到区别。有人可以给我任何建议吗?
解决方案
您可以尝试解决此问题的几件事:-
代替
driver.set_window_size(600, 800)
采用 :
driver.maximize_window()
也使用下面的代码:
driver = webdriver.Firefox(executable_path=dir_firefox_driver, options=option)
driver.get("https://www.mwave.me/en/mcountdown")
time.sleep(3)
driver.maximize_window()
try:
element = WebDriverWait(driver, 20).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".chart_view_more button"))
)
except:
print("there is no element")
quit()
temp = driver.find_element_by_css_selector(".chart_view_more button")
推荐阅读
- javascript - v8 对象中“快速”、“可内联”属性的数量限制是多少?
- flutter - 如何将依赖于另一个流的流映射到依赖于两个流的新模型?
- node.js - Gitlab-ci.yml 在尝试获取邮递员/纽曼报告时失败:纽曼:找不到“”记者
- python - Airflow 将任务 job_name 参数读取为文件夹
- django - Django ORM、Q 语句和自定义排序
- sublimetext3 - 在范围函数 [xy] 内使用 sublime text 3 highlight 时,如何防止在搜索选项卡时突出显示空格?
- angular - 重新加载页面是否会使整个 Angular 应用程序重新运行?
- h2o - 如何修复 TypeError:调用 H2O get_grid 函数时“float”对象不可迭代?
- oauth-2.0 - 使用 jira 实现的 Nuxt auth 登录无法更改媒体类型标头
- python - discord.utils.get 语音客户端是无,即使机器人连接到语音通道。不和谐.py