赞
踩
使用postman对图书馆抢座系统的一个或者多个接口进行分析。
找到接口返回参数和需要参数之间的联系,实现登录与抢座的大体思路。
第二步是全部工作的重点和难点,解决了第二步,代码基本功能就能实现。
这里需要requests的模块,建议不需要使用urllib或者其迭代产品,前者相比于后者而言更加便捷。
优化的部分有很多,就看自己想怎么方便的实现脚本的功能。以下简单写出几点:
本学校的抢座时间是在前一天的晚上10点半,所以我需要time模块对代码的执行时间进行控制,到时间按时完成。
当抢座不成功的时候,代码自行执行进行下一位置的的抢座功能。
python代码执行不成功的时候(并不是语法错误),会中断执行。这一点对那抢座开始的前三十秒至关重要,所以为了优化代码,也可以使用try except进行异常处理。
第三条例子的发生情况可能就有ip被封的情况,这就需要ip代理。
..........
简单说几句,除了python基础意外,还需要了解requests模块里面的内容和Postman的使用方法(后者不需要之道也可以)。另外若需要爬虫来爬取网页数据的话还应该懂得XPath匹配和re正,则匹配数据,前者需要了解HTML的基本框架,后者可以简单的认为是一个数学上面的公式。
Header信息校验。基本包括 User-agent、Cookies、Referer和sign等。
Ip限制,因为爬取速度过快或者其他原因被服务器认定为恶意程序被禁止访问。解决方法就是Ip代理,本片不细讲ip代理。
Selenium自动化测试工具,可以对Javascript动态渲染的页面进行爬取内容,相比之前分析接口还是挺方便的。但是selenium的运行较慢,显然不适合图书馆的爬取。
关于爬虫的基本知识显然就是上面这些了,可以完成大部分的爬虫工作。下面简单的说一下,图书馆的代码
- # 爬虫代码
- import json
- import requests
- # 对登录接口的分析
- data1 ={
- "username": "",
- "password": "",
- "service": "",
- "loginType":''
- }
- url1 = ""
- header1 = {
- 'User-Agent': '',
- 'Content-Type': '',
- }
- resp = requests.session()
- resp.post(url,headers=header1,data=data1)
-
- # 第二布
- # 再次验证,返回值。
- str = resp.text
- url2 = ""
- header2 = {
- 'User-Agent': '',
- }
- data2={
- 'service': '',
- }
- resp1 = re.post()
-
- # 对座位进行尝试预定
- url3= ''
- data3 ={
- 'dev_id': '', # 座位号
- 'type': 'dev',
- 'start': '', # 开始时间
- 'end': '',
- 'start_time': '',
- 'end_time': '',
- 'act': 'set_resv', # 操作方式
- '_': ''
- }
- header3 = {
- }
- resp2 = resp1.post()
- print(resp2.text)
- # 关闭属性
- res2.close()
- print("over!")
我们学校图书馆的WHAT WE DO
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。