• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用Python爬虫的request方式实现自动签到!

python 搞java代码 3年前 (2022-05-21) 19次浏览 已收录 0个评论

使用selenium实现自动签到确实是一个方便快捷的方式,但不可否认的是这种方式确实有一个硬伤,就是太慢了,模拟浏览器进行加载、点击操作,即使用上显性等待这种高端操作也最多只能把整个运行过程优化到5秒以内。

作为一个有性能洁癖的程序猿,5秒显然是我不能接受的。那还有什么方式比它更快呢,很简单,直接发post请求啊,直接对网站发起post或get请求永远是最快的方式,网上流传的各种秒杀脚本用的也是这种方式。

requests库的使用

本来之前用scrapy做了一个版本,结果发现为了实现这么个小功能用scrapy太过笨重,代码量还多,干脆换成requests。

requests库的使用方法非常简单,网上有对应的中文文档可以参考requests文档。

直接上代码

response = requests.get("http://www.baidu.com")
print(response.text)

www#gaodaima.com来源gaodaimacom搞#代%码网搞代码

post请求则是要先实例化一个session对象,用session对象进行后续的post请求和其他操作,session对象会为你保存你的登录状态,包括cookie等内容。

form_data1 = {"mobile": "xxxx",
              "mobileErr": "",
              "password": "xxxx",
              "passwordErr": "",
              "uuid": "0",
              "mid": "0"}
s = requests.Session()
response = s.post(login_url, data=form_data)
# print(response.text)

当session携带了登录信息之后就可以进行后续的签到操作,而签到操作也很简单,直接用gei请求访问一下签到按钮对应的链接即可。

当然无论是获取签到按钮的链接还是获取登录所需要的的form表单数据都离不开抓包。

我用的抓包软件是Fiddler,抓包这里我就不详细讲了,网上可以搜到很多教程。

最后把完整代码放一下。

import requests
import sys
import traceback
login_url = "https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=member.login.index"
target_url = 'https://gf2.wmbuluo.com/addons/yun_shop/api.php?i=2&uuid=0&mid=0&type=5&shop_id=null&route=plugin.sign.Frontend.Modules.Sign.Controllers.sign.sign'
form_data1 = {"mobile": "xxxx",
              "mobileErr": "",
              "password": "xxxx",
              "passwordErr": "",
              "uuid": "0",
              "mid": "0"}
def run(form_data):
    s = requests.Session()
    response = s.post(login_url, data=form_data)
    # print(response.text)
    # print(response.status_code)
    if response.status_code == 200:
        resp = s.get(target_url)
        print(resp.status_code)
def main():
    run(form_data1)
    print("run1")
if __name__ == '__main__':
    try:
        sys.exit(main())
    except Exception as e:
        traceback.print_exc()

更多Python知识,请关注云海天Python教程!!

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用Python爬虫的request方式实现自动签到!

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址