前言:
现在各位老铁们对“页面一加载就发送ajax请求”都比较关心,小伙伴们都想要学习一些“页面一加载就发送ajax请求”的相关文章。那么小编同时在网上收集了一些有关“页面一加载就发送ajax请求””的相关内容,希望我们能喜欢,同学们快快来学习一下吧!现在很多网站都可以通过签到来获取积分,然后拿积分去兑换小礼品。每天手动签到难免有忘记的时候,下面就给大家介绍几种常见的自动化签到方案。
自动化签到的三种方式Python/C#/Java等语言拿到页面cookie或者token去请求对应的接口pyppeteer/selenium 操作浏览器模拟dom点击浏览器插件方式实现方案一 使用拿到cookie/token方式签到
这种方式需要提前获取页面cookie/token然后进行签到,电脑端可以使用F12查看,但是手机端页面没有F12就无法通过这种方式获取了,当然手机端页面可以使用Fiddler来抓取cookie/token。
data = {"xxx": "xxxx"}cookie = 'xxxxxxx'url = "xxxx"def post(url, data={}, cookie=""): cookie_json = {} if cookie != "": for c in cookie.split(";"): str = c.split("=") cookie_json[str[0]] = str[1] r = requests.post(url, cookies=cookie_json, json=data, headers=headers) if r.status_code == 200: return json.loads(r.content) return Falseif post(url, data=data, cookie=cookie)
这种方案使用腾讯云函数,再配合定时执行,是真的香。
方案二 操作浏览器模拟dom点击
这种方式需要你在浏览器中登录一次,让浏览器记住你的cookie/token,然后通过自动化操作去模拟DOM点击事件,从而完成签到任务
import asynciofrom pyppeteer import launchasync def main(): browser = await launch( headless=False, ignoreDefaultArgs=["--enable-automation"], args=["--no-sandbox", "--window-size=1366,848"], ) # 关闭无头浏览器 page = await browser.newPage() await page.setViewport({"width": 1366, "height": 768}) await page.goto("xxxx") # 跳转到指定网页 # 这里就可以获取dom,执行dom的点击事件 await page.evaluate('window.scrollBy(0, document.body.scrollHeight)') await page.waitFor(50 * 1000) await browser.close() # 关闭asyncio.get_event_loop().run_until_complete(main()) # 调用方案三 浏览器插件方式实现
这种方式也必须在浏览器中登录。通过浏览器插件在页面中注入js脚本,在页面加载完成后执行模拟dom操作,或者直接发送ajax请求。页面中发送的ajax也可以配置带上cookie。
console.log('页面注入成功');window.onload = function () { setTimeout(() => { let url = 'xxxxx'; //判断是不是当前也页面 if (window.location.href == url) { setTimeout(() => { let b = document.querySelector('.signin.btn') if (b) { b.click(); } //或者 //httpPost(url, {'xx':'xxx'}); }, 10000); } }}//post请求function httpPost(url, data) { const xhr = new XMLHttpRequest(); xhr.open('post', url) xhr.withCredentials = true; //很重要,没有这里请求就不会带上cookie xhr.setRequestHeader("Content-type", "application/json"); xhr.send(JSON.stringify(data)); xhr.onreadystatechange = function () { if (xhr.status == 200 && xhr.readyState == 4) { console.log(JSON.parse(xhr.responseText)); } }}使用消息推送把签到结果发送到微信/QQ等第三方平台
配合消息推送定时把签到结果发送到第三方平台,每天看下消息就可以掌握具体签到情况,常用的消息推送有:
WxPusherpushplus
标签: #页面一加载就发送ajax请求