目录
- 1.Selenium 简介
- 2.Selenium基本使用
- 3.购票实战
1.Selenium 简介
Selenium 是一个用于自动化网页交互的开源工具。它可以通过模拟用户的行为(如点击、输入文本、滚动页面等)来自动化网页浏览器的操作。本次购票脚本使用selenimu4.21。
- 是一个Web自动化测试工具,可以直接运行在浏览器上
- 支持所有主流的浏览器
- 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,基础页面截图等
- 非Python标准模块,安装才能使用
2.Selenium基本使用
创建 WebDriver 实例以控制浏览器:
python">from selenium import webdriver
#指定 WebDriver 的路径
driver_path = '/path/to/chromedriver'
#创建 WebDriver 实例
driver = webdriver.Chrome(executable_path=driver_path)
使用 get 方法打开一个网页:
python">driver.get('http://example.com')
在浏览器中进行前进和后退:
python">driver.back() # 后退
driver.forward() # 前进
元素定位:
python">element = driver.find_element()
元素等待:
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'some-id')))
对页面元素执行操作,如点击、输入文本、获取元素属性等:
python">element.click() # 点击
element.send_keys('some text') # 输入文本
element_text = element.text # 获取元素文本
捕获页面截图或录制视频:
python">driver.get_screenshot_as_file('screenshot.png') # 截图
driver.save_screenshot('screenshot.png') # 另一种截图方法
#录制视频需要使用第三方库,如 pyvirtualdisplay
管理浏览器的 Cookies:
python">driver.get_cookies() # 获取所有 Cookies
driver.add_cookie({'name': 'cookie_name', 'value': 'cookie_value'}) # 添加 Cookie
driver.delete_cookie('cookie_name') # 删除 Cookie
结束 WebDriver 会话并清理资源:
python">driver.quit() # 关闭浏览器并结束 WebDriver 会话
3.购票实战
先爬取车站代号,用于出发站和目的站
python">#用于爬取车站代号
import requests
import re
import openpyxl
def get_station():url='https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9151'headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'}resp=requests.get(url,headers=headers)resp.encoding='utf-8'#print(resp.text)stations=re.findall('([\u4e00-\u9fa5]+)\|([A-Z]+)',resp.text)#print(stations)return stations #stations是一个列表def save(lst):wb=