【发布时间】:2018-05-25 05:58:39
【问题描述】:
我正在尝试抓取一个主要由 javascript 运行的网站,这让我非常头疼,因为我不懂 javascript。
这是我目前所拥有的:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.keys import Keys
binary = FirefoxBinary(r'C:\Users\kwright\AppData\Local\Mozilla Firefox\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)
driver.get('http://www.papowerswitch.com/shop-for-electricity/shop-for-your-home')
#zipcode = driver.find_element_by_id('edit-zipcode')
monthlyuse = driver.find_element_by_name('estimated-monthly-usage')
button = driver.find_element_by_id("edit-submit-residential-rate-search2")
driver.execute_script("document.getElementById('edit-zipcode').value='18707'")
这很好用,它为我提供了邮政编码部分所需的价值。下一部分我遇到了麻烦,因为 Id 名称不是唯一的,但是名称标签是,我的问题是我不知道通过名称标签获取元素并输入我需要的数据的 javascript 函数.
我尝试了这个和这个的几个变体,但没有成功。
driver.execute_script("driver.findElement(webdriver.By.name('estimated-monthly-usage')).value='1000'")
谁能在这里帮助我,让我知道我需要添加什么脚本才能填写表格的这一部分?谢谢你。
编辑: 这是HTML 每月使用量
【问题讨论】:
-
如果显示 html 可能会有所帮助,但是为什么不使用 javascript,仅使用 Webdriver 和 Python 就找不到元素?
-
在python中返回错误,python中的selenium驱动不会发送密钥,你必须通过javascript来完成。
标签: javascript python selenium web-scraping