【发布时间】:2018-01-30 19:12:36
【问题描述】:
我已经在 python 中结合 selenium 编写了一些代码,以到达我所追求的数据所在的目标页面。我下面的代码几乎可以到达那里。我只需要稍微抽动一下,就可以让它完美运行。
首先,浏览器会导向一个页面,其中默认的Login 按钮位于Public User Login 标题下,然后它会单击该按钮。当出现新页面时,它会单击位于该页面顶部Account Search 标题下的Advanced 选项卡。单击该选项卡后,在Parcel Classification 的标题下可以看到一个项目列表。现在,我需要从选项中选择02.C - PROPERTY BURDENED BY CONSERVATION EASEMENTS 并按下搜索按钮。就是这样。
我的刮刀可以相应地完成整个事情,但问题是:当它选择首选选项时(我在上面提到过文本),默认情况下还有另一个选项(这些选项的第一个空格)保持选中状态.这就是为什么当我的爬虫点击搜索按钮时,它会填充错误的结果(没有结果的页面)。
如何取消选择第一个空白并继续其余部分。提前感谢您查看它。
该网页的链接:Web_Link
这是我迄今为止尝试过的:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("replace_with_above_link")
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#middle_left input[name='submit']"))).click()
wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Advanced"))).click()
Select(wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,".tableHtmlLayout #accountTypeID")))).select_by_visible_text('02.C - PROPERTY BURDENED BY CONSERVATION EASEMENTS')
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".buttons input[type='submit']"))).click()
driver.quit()
【问题讨论】:
-
你能分享相同的 HTML 代码示例吗?提供的 URL(至少对我而言)不可访问...
-
好的,先生。我在等你。将提供一个指向带有该部分的 html 元素的 Dropbox 的链接。
-
链接到下拉选项的 html 元素:Click_to_see
标签: python python-3.x selenium selenium-webdriver web-scraping