我想从Wikipedia上收集有关2019年美国机场年旅客的数据。可通过此处的机场页面访问此数字(所需数字用粉红色突出显示:]
from selenium import webdriver
import selenium
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
def search(link):
driver = webdriver.Safari()
driver.get("https://en.wikipedia.org/")
elem = driver.find_element_by_name("search")
elem.clear()
elem.send_keys(link)
elem.submit()
time.sleep(3)
elem1 = driver.find_element_by_xpath('//*[@id="mw-content-text"]/div/table[1]/tbody/tr[20]/td/table/tbody/tr[2]/td/text()')
num = elem1.text
print(num)
driver.close()
search('IND airport')
而且非常有效!但是仅适用于该机场:(因此,我需要从该表访问此值,但也需要访问其他机场。Xpath可以替代吗?例如,如果我需要JFK的数据,则需要另一个Xpath,这会使我的代码无用用于机场列表。
xpath
选项。它将用文本包含Passengers
然后是following-sibling::td
的方式标识Th标签>elem1 = driver.find_element_by_xpath("//*[@id='mw-content-text']//table/tbody//th[contains(.,'Passengers')]/following-sibling::td")
num = elem1.text