selenium

安装selenium模块

pip install selenium

下载浏览器驱动

(以chrome为例)

查看chrome版本

 

访问http://chromedriver.storage.googleapis.com/index.html,进入与chrome相同版本的路径(下图红线标注),再下载驱动包(以windows为例)

 

解压chromedriver_win32.zip得到chromedriver.exe

简单的例子

# coding=utf-8
from selenium import webdriver
 
path = r"C:\Users\Administrator\Downloads\chromedriver.exe"  #chrome驱动的路径
url = "https://www.baidu.com"
browser = webdriver.Chrome(path)  #创建browser对象,打开chrome
browser.get(url)  #打开一个网页

执行结果:

代码练习

# coding=utf-8

from selenium import webdriver
from selenium.webdriver.support.select import Select  #专门处理下拉框元素
import time
path = r"C:\Users\Administrator\Downloads\chromedriver.exe"  #chrome驱动的路径
url = "https://kyfw.12306.cn/otn/leftTicket/init?"
browser = webdriver.Chrome(path)  #创建browser对象,打开chrome
browser.maximize_window()  #最大化窗口
browser.get(url)  #打开一个网页
#元素定位
#出发地id fromStationText
start_city = browser.find_element_by_id('fromStationText')
start_city.click()  #鼠标单击
start_city.clear()  #清空输入
start_city.send_keys("yangxian\n")  #输入内容
#目的地id toStationText
end_city = browser.find_element_by_id('toStationText')
end_city.click()
end_city.clear()
end_city.send_keys("xian\n")

#选择时间
choice_time = Select(browser.find_element_by_id("cc_start_time"))
#choice_time.select_by_index()  通过索引来取值
choice_time.select_by_visible_text("00:00--24:00")  #通过数据取值

#选择日期
#这里使用了css 具体内容:#date_range li:nth-child(4)
date = browser.find_element_by_css_selector("#date_range li:nth-child(4)")
date.click()

#防止网络延迟
time.sleep(5)

#在这设定自己想要的车次,然后程序会在所有有票的list中匹配,如果favourite中有一个元素匹配到就显示有票
favourite = ['D6854','G2854']

#获取所有有票的车次信息并打印
xpath = '//tbody[@id="queryLeftTable"]//td[4][@class]/../td[1]//a'
train_list = browser.find_elements_by_xpath(xpath)
for train in train_list:
    #print train.text
    if train.text in favourite:
        print '恭喜你,有票'
        break
    else:
        print '对不起,暂时无票'
#关闭网页
browser.quit()

 

posted on 2020-09-22 19:23  vorn  阅读(154)  评论(0)    收藏  举报

导航