[Python] 用 Docker + Python + Selenium 抓取

本文介绍了如何在Docker环境下使用Python和Selenium进行网页操作,包括启动Chrome、点击元素、获取文本、输入值、选择下拉菜单选项、处理弹窗以及页面重载等操作。
摘要由CSDN通过智能技术生成

介绍

在上一篇文章中,我用Docker容器创建了一个Python环境,并尝试操作Selenium。
这次以网页的形式输入数值,查看结果的显示。
请注意,它可能很难看到,因为我写它是为了保留使用 Selenium 操作网页的基本部分的备忘录。

进行

这一次,我将尝试以下项目。
1. 使用 Selenium 启动 Chrome。
2. 显示网页。
3. 单击页面中的按钮元素可移动到该页面。
4. 等待过渡后页面上显示所需元素。
5.从页面的p元素中获取文本。
6. 单击页面中的按钮元素,显示对话框。
7. 在对话框的输入元素中输入一个值。
8. 从对话框的下拉菜单中选择一个值。
9. 单击对话框中的按钮元素提交数据。
10. 等待显示传输完成警报。
11. 单击警报中的确定按钮。
12.重新加载页面以更新页面中的信息。
13. 等待所需元素出现在重新加载的页面上。
14.从页面的p元素中获取文本。

如何使用Docker搭建Python的Selenium环境请参考上一篇(【Python】在Docker容器中尝试使用selenium)。

尝试使用硒

实现代码

这是这次实现的代码。

docker_selenium.py
import time from selenium import webdriver from selenium.webdriver.common.alert import Alert from selenium.webdriver.common.by import By from selenium.webdriver.support.select import Select from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # webのフォームに入力する内容を変数に格納 MILAGE = 38.38 ELEVATION = 218 WEATHER = ['晴れ', '曇り', '雨'] # webdriverのオプションを設定 options = webdriver.ChromeOptions() options.add_argument('--headless') print('Connect remote browser...') driver = webdriver.Remote(command_executor='172.21.0.3:4444/wd/hub', options=options) print('remote browser connected...') try: # ブラウザでWebページを開く  driver.get('https://xxxxxxxx.herokuapp.com/') print('current URL: ', driver.current_url) # ボタンをクリックしページ遷移する処理  bicycle_button = driver.find_element(By.XPATH, '//input[@id="button_bicycle"]') bicycle_button.click() print('current URL: ', driver.current_url) # ページの読み込みのための最大待ち時間  print('Max 5 secound wait...') wait = WebDriverWait(driver, 5) wait.until(EC.visibility_of_element_located((By.XPATH, '//p[@id="sum_milage"]'))) # 新規データ入力前の今月の走行距離のテキストを取得する  bicycle_page_message_2 = driver.find_element(By.XPATH, '//p[@id="sum_milage"]').get_attribute('textContent') print('bicycle_page_message_2 before: ', 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值