最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 用Python爬虫的request方式实现自动签到!

    正文概述    2020-03-22   293

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

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

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

    requests库的使用

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

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

    直接上代码

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

    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视频教程!!


    起源地下载网 » 用Python爬虫的request方式实现自动签到!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元