工具: python+pycharm+selenium 12306网址: https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc 出发地: 南京 目的地: 上海 发车日期: 当天日期的第二天 发车时间: 06:00–12:00 目的: 打印所有二等座有座的车次
二、页面查找 1、查询条件 2、定位有二等座的元素id="queryLeftTable"标签下的第4个td标签下的符合class=yes的元素,xpath://*[@id="queryLeftTable"]//td[4][@class="yes"]
3、定位有二等座的车次信息位于第2步中元素的上一级tr标签下的第1个td标签下的a标签内,xpath://*[@id="queryLeftTable"]//td[4][@class="yes"]/../td[1]//a
4、Ctrl+F检验xpath查找的车次查找成功,二等座有座的车次数量为30。
三、代码实现 from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.select import Selectdriver = webdriver.Chrome()driver.implicitly_wait(10)driver.get("https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc")# 需点击出发地输入框再进行输入ele = driver.find_element(By.ID,"fromStationText")ele.click()# 输入出发地(需要按回车键确定)ele.send_keys("南京\n")# 需点击目的地输入框再进行输入ele1 = driver.find_element(By.ID,"toStationText")ele1.click()# 输入目的地(需要按回车键确定)ele1.send_keys("上海\n")# 选择发车时段select = Select(driver.find_element(By.ID,"cc_start_time"))select.select_by_visible_text("06:00--12:00")# 选择发车时间-当前日期第二天driver.find_element(By.XPATH,'//*[@id="date_range"]//li[2]').click()# 选取二等座有座的车次信息trains = ele2 = driver.find_elements(By.XPATH,'//*[@id="queryLeftTable"]//td[4][@class="yes"]/../td[1]//a')# 输出二等座有座的车次数量print("二等座有座的车次数量为:")print(len(trains))# 输出二等座有座的车次print("二等座有座的车次分别为:")for train in trains:print(train.text)driver.quit()运行结果如下: 二等座有座的车次数量和车次信息符合页面查找结果,至此完成该项目。