用python写一个抢票小程序(无验证码)

准备工作:

利用到的库: requests、time、re、threading、wx

利用chrome抓包模拟校园网登录的python脚本:

打开浏览器的开发者工具,在network中找到 所有场馆页面信息的url 和 发送订票请求的url。

我在这次用到的有:url、requests_headers、form_data和cookies


1.1 在python中学习用requests创建会话并且发送http请求(仅用到get和post):

在整个查看和抢票过程中全程需要用到cookies参数,但是又不想重复输入,于是创建一个会话让我减少这些重复操作。

import requests
cookie1 = cookie       #这里的cookie是从浏览器中复制出来的,以字典的形式存储
s = requests.session() #创建会话
cookie1 = requests.utils.cookiejar_from_dict(cookie1, cookiejar=None, overwrite=True) #将字典形式转换成cookiejar形式
s.cookies = cookie1    #将cookies信息放入会话中

场馆信息的页面我放在url_all中,获取html需要在带上cookie的信息的情况下用get方法发送请求,结果我用print输出。

get = s.get(url_all)
print(get.text)

在上述得到的html中如果得到最终发送订票信息的url(假设为url_ticket),接下来用post发送相应表单进行订票,可以用status_code来查看状态码。

post = s.post(url_ticket,data = form
Python中创建一个厦门大学参观小程序功能,我们可以使用requests库来进行网络请求,Tornado框架来处理并发请求,以及BeautifulSoup库来解析网页内容。这里是一个简化的步骤: 1. **安装所需库**: ```bash pip install requests tornado beautifulsoup4 ``` 2. **获取网页源码**: 首先需要抓取厦门大学参观预约网站的HTML结构。通过`requests.get()`函数发送GET请求到官网并解析返回的HTML。 ```python import requests from bs4 import BeautifulSoup url = 'https://xxx.xmu.edu.cn/visit' # 将实际URL替换为厦门大学预约页面 response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 3. **分析目标元素**: 找出网页中包含门信息、提交按钮等关键元素的定位规则。这通常涉及到CSS选择器或XPath表达式。 4. **模拟点击**: 使用selenium库如果网站有JavaScript交互的话,否则直接提取表单数据并构造POST请求。 ```python from selenium import webdriver # 如果需要,导入selenium库 # 创建Chrome浏览器实例 driver = webdriver.Chrome() # 定位输入框和按钮元素,填相关信息并提交 form_data = {} # 这里需要填充实际的表单字段 for field, value in form_data.items(): element = driver.find_element_by_id(field) # 用id查找元素 element.send_keys(value) submit_button = driver.find_element_by_xpath('//button[@data-submit="true"]') # 提交按钮的XPath submit_button.click() # 等待结果页面加载完成 # ... ``` 5. **设置定时任务或循环**: 可能需要设置一个循环或者定时器,比如每分钟检查一次是否有新的名额开放。可以利用Tornado的异步特性,结合asyncio库来提高效率。 6. **异常处理**: 添加错误处理代码,如网络连接失败、服务器错误、验证码等问题,并提供相应的日志记录。 7. **运行程序**: 启动Tornado服务器并监听指定端口,让脚本作为HTTP请求处理器。 注意:上述代码仅提供了一个基本的框架,具体的实现细节会因厦门大学官网的实际布局和安全机制而变化。在编这样的脚本时,务必遵守网站的使用条款,尊重其服务协议,并遵守法律法规。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值