12306抢票脚本 python爬虫代码
时间: 2024-10-31 08:08:23 浏览: 116
编写12306抢票脚本Python爬虫需要使用到一些特定的库,如`requests`用于发送HTTP请求,`BeautifulSoup`或`lxml`用于解析HTML内容,以及模拟登录和验证码识别的部分可能会涉及到`selenium`。以下是一个简化的示例,展示如何抓取网页数据:
```python
import requests
from bs4 import BeautifulSoup
# 登录12306
def login(username, password):
login_url = 'https://login.12306.cn/login'
data = {
'username': username,
'password': password,
'appid': 'some_appid', # 需要实际注册的应用ID
'loginType': 'NT',
}
response = requests.post(login_url, data=data)
if '验证图形码' in response.text: # 验证码环节
captcha_code = input("请输入验证码:") # 实际项目中可以尝试OCR识别
data['captcha'] = captcha_code
# 再次发送POST请求
response = requests.post(login_url, data=data)
# 抓取车票信息
def get_tickets(url):
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析并提取所需的数据,比如车次、余票等
tickets_data = soup.find_all('div', class_='ticket') # 样式名称可能不同,需根据实际情况调整
return tickets_data
# 主函数
if __name__ == '__main__':
username = "your_username"
password = "your_password"
login(username, password)
target_url = 'https://kyfw.12306.cn/otn/leftTicket/init' # 搜索页面URL
tickets_data = get_tickets(target_url)
for ticket in tickets_data:
print(ticket.text) # 打印车票信息
阅读全文
相关推荐



















