python爬虫12306抢票
时间: 2023-11-21 10:06:16 浏览: 48
Python爬虫可以用于12306抢票,具体步骤如下:
1. 首先,需要安装selenium和chromedriver,selenium是一个自动化测试工具,chromedriver是一个控制Chrome浏览器的驱动程序。
```python
!pip install selenium
```
2. 导入selenium和time模块,设置浏览器驱动路径和乘车日期等信息。
```python
from selenium import webdriver
import time
# 设置浏览器驱动路径
driver_path = 'chromedriver.exe'
# 设置乘车日期
date = '2022-01-01'
```
3. 打开Chrome浏览器,并访问12306官网。
```python
# 打开Chrome浏览器
driver = webdriver.Chrome(executable_path=driver_path)
# 访问12306官网
driver.get('https://www.12306.cn/index/')
```
4. 登录12306账号,输入用户名和密码,然后手动输入验证码。
```python
# 等待用户手动输入验证码
time.sleep(30)
```
5. 在出发地和目的地输入框中输入相应的城市名称,然后选择乘车日期。
```python
# 输入出发地和目的地
driver.find_element_by_id('fromStationText').click()
driver.find_element_by_id('fromStationText').clear()
driver.find_element_by_id('fromStationText').send_keys('北京')
driver.find_element_by_id('toStationText').click()
driver.find_element_by_id('toStationText').clear()
driver.find_element_by_id('toStationText').send_keys('上海')
# 选择乘车日期
js = "document.getElementById('train_date').removeAttribute('readonly')"
driver.execute_script(js)
driver.find_element_by_id('train_date').clear()
driver.find_element_by_id('train_date').send_keys(date)
```
6. 点击查询按钮,等待页面加载完成。
```python
# 点击查询按钮
driver.find_element_by_id('search_one').click()
# 等待页面加载完成
time.sleep(10)
```
7. 选择车次和座位类型,然后点击预订按钮。
```python
# 选择车次和座位类型
driver.find_element_by_xpath('//tbody/tr[1]/td[13]/a').click()
time.sleep(2)
driver.find_element_by_xpath('//ul[@id="normal_passenger_id"]/li[1]/label')
driver.find_element_by_id('submitOrder_id').click()
```
8. 点击确认按钮,等待页面加载完成。
```python
# 点击确认按钮
driver.find_element_by_id('qr_submit_id').click()
# 等待页面加载完成
time.sleep(10)
```
9. 最后,可以通过邮件或短信等方式通知自己是否抢到了车票。