使用 python 操作网页
Manipulating web pages with python
我的目标是能够用脚本自动操作网页。填写信息并选择正确的下拉框。以最少的用户输入。
所以我在这里的示例使用的是国家铁路网站。
import win32com.client
from time import sleep
ie = win32com.client.Dispatch("InternetExplorer.Application")
ie.Visible = 1
ie.navigate("http://www.nationalrail.co.uk/")
while ie.ReadyState != 4: # Wait for browser to finish loading
sleep(1)
print("Webpage Loaded")
page = ie.Document
links = page.links
如果我想将 "Leaving" 框更改为到达,请填写从 "Station / Postcode" 并点击开始。我该怎么做?
win32com 也是处理此类网页的最佳方法吗?
虽然我相信每个 Python 用户都会感谢您尝试以最困难的方式做到这一点,但为什么不让事情变得更简单并使用库 Selenium?
这是您的代码以及您在 Selenium 中尝试执行的操作:
from selenium import webdriver
driver = webdriver.Firefox() # Initialize the webdriver session
driver.get('http://www.nationalrail.co.uk/') # replaces "ie.navigate"
driver.find_element_by_id('sltArr').find_elements_by_tag_name('option')[1].click() # Selects the "Arrive" option
看到了吗?好看多了!最后一行选择 "Leaving" 表单,在其中找到 option
标签,然后选择 Arrive 选项。有了这段代码,您应该也能弄清楚您想对该站点执行的其余操作。
我的目标是能够用脚本自动操作网页。填写信息并选择正确的下拉框。以最少的用户输入。
所以我在这里的示例使用的是国家铁路网站。
import win32com.client
from time import sleep
ie = win32com.client.Dispatch("InternetExplorer.Application")
ie.Visible = 1
ie.navigate("http://www.nationalrail.co.uk/")
while ie.ReadyState != 4: # Wait for browser to finish loading
sleep(1)
print("Webpage Loaded")
page = ie.Document
links = page.links
如果我想将 "Leaving" 框更改为到达,请填写从 "Station / Postcode" 并点击开始。我该怎么做?
win32com 也是处理此类网页的最佳方法吗?
虽然我相信每个 Python 用户都会感谢您尝试以最困难的方式做到这一点,但为什么不让事情变得更简单并使用库 Selenium?
这是您的代码以及您在 Selenium 中尝试执行的操作:
from selenium import webdriver
driver = webdriver.Firefox() # Initialize the webdriver session
driver.get('http://www.nationalrail.co.uk/') # replaces "ie.navigate"
driver.find_element_by_id('sltArr').find_elements_by_tag_name('option')[1].click() # Selects the "Arrive" option
看到了吗?好看多了!最后一行选择 "Leaving" 表单,在其中找到 option
标签,然后选择 Arrive 选项。有了这段代码,您应该也能弄清楚您想对该站点执行的其余操作。