2021最新版 问卷星模拟浏览器自动填写(快速提交)python
本代码仅供学习交流!
文章目录
- 前言
- 一、post失败
- 二、转向模拟浏览器
- 2.运行结果
- 总结
前言
尝试一下程序提交问卷星的可能。本来想的是post提交,小伙伴们有没有发现问卷星的加密难度是螺旋式升天,对于我这种小白来说极为的不友好。
一、post失败
个人感觉最难的是jqparm参数,百度到一位大佬破解成功了,不过现在好像不行了。但是思路还是可以大致了解下的。传送门
二、转向模拟浏览器
本来是用的selenium,代码都即将完工,但是偏偏来了一个智能验证,相信试过的小伙伴都知道了,会跳出来一个智能验证,它能识别出我们使用了selenium,就算你是真人点击也无法通过验证,此刻我的心情就只能草和一种四腿动物来表示。
如下图
最终在网上发现了一个库pyppeteer可以较为舒服的解决问题,大致思路就是让浏览器打开网址,根据网页的源代码来判断并进行填写,由于最后还有一个未知的选时间段的,最后就自己选下并提交,解决战斗。
代码如下:
import asyncio
from pyppeteer import launch
from pyppeteer_stealth import stealth
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import re
import time
url = "https://www.wjx.top/m/91040160.aspx" #测试网址name = "问卷星"
number = "11012011966"
QQ = "1111111111"
class_data = "摸鱼专业11-1班"
student_id="111111111"async def run():driver = await launch({# 谷歌浏览器的安装路径'executablePath': r'D:\360\Google\Chrome\Application\chrome.exe',# Pyppeteer 默认使用的是无头浏览器'headless': False,# 设置Windows-size和Viewport大小来实现网页完整显示'args': ['--no-sandbox', '--window-size=1024,768', '--disable-infobars'],'dumpio': True,})# 用 newPage 方法相当于浏览器中新建了一个选项卡,同时新建了一个Page对象page = await driver.newPage()#简称换头await page.setUserAgent(UserAgent().random)await page.setViewport({'width': 1024, 'height': 768})# 反爬虫跳入网页await stealth(page)await page.goto(url) #问卷星网址page_text = await page.content() # 获取网页源码'''下面的都是对文本的判断,大佬们直接忽略自己写就行了。'''Soup = BeautifulSoup(page_text, 'lxml')list_judge_email = [] # 位置list_ques = Soup.find_all(text=re.compile("姓名"))list_ques.extend(Soup.find_all(text=re.compile("学号")))list_ques.extend(Soup.find_all(text=re.compile("QQ")))list_ques.extend(Soup.find_all(text=re.compile("qq")))list_ques.extend(Soup.find_all(text=re.compile("号码" or "电话" or "联系方式")))list_ques.extend(Soup.find_all(text=re.compile("班级" or "专业")))list_judge_email.extend(Soup.find_all(verify=re.compile("Email")))print(list_ques)for i in list_ques:if len(i) > 20: #有某些含有qq字眼但是却不是问题,直接排除continueprint(i + "----------------")if '姓名' in i:da_name = 'q' + i[0]if 'qq' in i or 'QQ' in i:da_qq = 'q' + i[0]if '班级' in i or '专业' in i:da_class = 'q' + i[0]if '学号' in i:da_studentid = 'q' + i[0]if '电话' in i or '手机' in i:da_number = 'q' + i[0]try:await page.type('[name="' + da_name + '"]', name)except:print('找不到姓名')try:await page.type('[name="' + da_number + '"]', number)except:print('找不到手机号码')try:if list_judge_email: # 不为空要加@qq.comawait page.type('[name="' + da_qq + '"]', QQ + '@qq.com')else: # 为空正常的qq号await page.type('[name="' + da_qq + '"]', QQ)except:print('找不到QQ')try:await page.type('[name="' + da_class + '"]', class_data)except:print('找不到专业班级')try:await page.type('[name="' + da_studentid + '"]', student_id)except:print('找不到学号')#定义在函数体内运行结束会直接退出浏览器,所以需要延时让我们完成时间段的选择,并提交time.sleep(200)asyncio.get_event_loop().run_until_complete(run())
2.运行结果
总结
又是很愉快的一次尝试呢!很多时候完成一件事情要考虑到它的时间成本以及收益,明显自己不会解js混淆,不过用浏览器也不赖啊。
2021最新版 问卷星模拟浏览器自动填写(快速提交)python相关推荐
- js实现问卷星根据答案自动填写2019年11月
参考链接地址:https://www.cnblogs.com/FHC1994/p/11721723.html (过程需要翻墙,问卷星链接需要在浏览器打开,在微信直接打开的链接本脚本无法使用) ①安装脚 ...
- python爬取问卷星内容_Python 自动填写问卷星(适用问卷星的所有类型题目)
为应付"上面"的需要,公司接了个帮助推广市政公益项目的问卷.整个问卷有单选题.多选题.填空题.日期框.地理位置框.矩阵多选和矩阵单选等几乎涵盖了问卷星所有类型问题的问卷,题目有近7 ...
- 关于如何自动填写并提交问卷星
关于如何自动填写并提交问卷星 今天想要刷问卷,网上找了许多,遇到了两个比较大的问题,一个是不知道如何填写想要的内容(选择题)还有一个是不知道如何破解问卷星的点击验证 https://tp.wjx.to ...
- python问卷星模拟提交
*一.前言 ** 笔者在家闲得无聊,突然想突破一下问卷星的反爬虫机制,顺便刷刷问卷,于是就开始分析了. ** 二.分析过程 ** 1.fiddler抓包 模拟提交首先当然是打开fiddler看看提交了 ...
- Python利用Selenium模拟浏览器自动操作
概述 在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览 ...
- python 模拟浏览器播放视频_使用python模拟浏览器实现登陆
前言你有没有想过,当我们在某个网站上登陆时,网站是如何通过验证的,我们都提交给了网站哪些信息,浏览器都发起了哪些请求? 下图是某个网站的登陆界面,接下来就让我们通过命令行模拟浏览器实现登陆操作,看看一 ...
- 2021年新版CDA LEVELⅠ 模拟题(二)
1 1分 一个BI项目由多个不同步骤构成,不同步骤又对应不同功能的工具,以下不属于BI工具组成部分的是A. ETLB. 可视化工具C. DWD. DB 正确答案:D , 你的答案:未作答 解析: D, ...
- python 模拟浏览器selenium 要求快速_Selenium模拟浏览器初识
Seleniumd介绍 在写Python爬虫的时候,最麻烦的不是那些海量的静态网站,而是那些通过JavaScript获取数据的站点.Python本身对js的支持不好,所以就有良心的开发者来做贡献了,这 ...
- 搜狗浏览器下 禁止浏览器自动填写用户名、密码
搜狗浏览器下,会出现把用户设置记住密码的表单(用户名和密码)乱放在,网站中其他成对出现的用户名及密码框中. 如何解决这种不负责任的可恨问题,网上有很多方案,但最终都未果. 一.先把网上搜到的方案放下: ...
最新文章
- java面试精典问答
- 并查集(disjoint set)的实现及应用
- BibTex (.bib) 文件的凝视
- 转://RMAN跨平台可传输表空间和数据库
- 小米立 Flag:要做年轻人的第一个深度学习框架
- ++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++
- 静电场里非常有用的公式
- android安卓 通知notification
- python数组(矩阵)乘法(点乘、叉乘)
- Kepware三菱驱动连接轻松开启
- 微信对账单 java_微信支付-跨境支付开发者文档
- 淘宝省钱_如何省钱和组装自己的电路板
- 【转载】Confluence(wiki)配置数据库及修改数据库地址
- mysql大翻页limt 1700,100慢优化方案
- S参数三要素无源性(Passive),互易性(Reciprocoty)和因果性(Causality)
- 微信小程序实战(一)---实现登录界面
- JS作用域和自由变量
- 学会Squid之传统代理和透明代理一篇就够了!
- 用js计算12个月的社保缴纳总额-企业信息公示
- basler相机出现buffer不足的解决方案
热门文章
- .NET敏捷开发框架-RDIFramework.NET V5.1发布(跨平台)
- 二维海浪波数谱的matlab,常见海浪谱
- 二维海浪波数谱的matlab,一种海杂波图像下基于最小区间思想的海浪主波周期反演方法...
- 在家如何搭建个服务器
- 方舟端游刚进入服务器显示er,方舟生存进化:老外地穴建家以为万无一失,结果被主播一锅端...
- SQL语句之OR和AND的混合使用
- 漏洞扫描软件AWVS的介绍和使用
- python浮雕图片_python图片处理PIL
- php dhcp,dhcp是什么意思
- 剖析两个暴利项目偏门赚钱项目.