首页 > 解决方案 > 我正在尝试从某些网站的搜索结果中提取纯文本

问题描述

我正在按照自己的节奏学习 python 并且一直被困在一个问题上。我试图通过在命令行上运行 python 脚本将搜索结果显示为纯文本。这就是我所拥有的;它会打开 Firefox,启动网站并用地址自动填充搜索框,正如您在右下角看到的那样,它会为您提供地图参考。

import html
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()
browser.get("https://www.street-directory.com.au/vic")

elem = browser.find_element_by_name("searchtxt")
elem.send_keys("595 Little Collins Street, Melbourne, VIC 3000" + Keys.RETURN)

无论我尝试了什么,我都无法显示该框内容的纯文本结果。任何帮助将不胜感激

标签: python-3.xselenium

解决方案


这是应该工作的一段代码。

url = r"https://www.street-directory.com.au/vic"
# navigate to url
driver.get(url)
# get the current map ref number (we have to wait until this is updated when new address is entered)
oldMapRefNumber = driver.find_element_by_id("MapReference Number").text
# wait for the search
search = WebDriverWait(driver,30).until(EC.presence_of_element_located((By.NAME,"searchtxt")))
# send the address and hit enter
address = "595 Little Collins Street, Melbourne, VIC 3000"
search.send_keys( address + Keys.RETURN)
# wait the popup to display with the specified address (optional)
WebDriverWait(driver,60).until(EC.presence_of_element_located((By.XPATH,"//div[@class='info-lyr-prop-top']")))
# wait until the old map ref number is updated
WebDriverWait(driver,60).until_not(EC.presence_of_element_located((By.XPATH,"//div[@id='MapReference Number'][.='" +oldMapRefNumber + "']")))
# get the new map ref number
mapRefNumber = driver.find_element_by_id("MapReference Number").text
# print the new map ref number
print(mapRefNumber)

输出:

43 F9


推荐阅读