如何愉快的填写问卷星

从业务开发,了解http本质。

问卷星代刷方法:

  1. python+selenium 通过自动化测试工具正常填写,方法低效,容易出现安全检测(本文不讲)。
  2. post请求,模拟包发送,简单快捷,跳过安全检测,缺点:需要对http协议有所了解,对请求包进行分析。

开始

设计问卷,我将从测试简单的单选,多选,填空上进行请求包分析。

选择一款带有右键检查的浏览器,本文采用google浏览器。

测试开始,准备对请求包进行解析,此处点击提交按钮后,需要在反应过程快速停止抓包,否则会被响应包覆盖:

接下来我们点击请求包,查看请求包内容将有惊人发现:

我们讲解一些内容,为python模拟post请求提供支撑。

Request URL:实际提交的URL路径

Status Code:状态码 和原因

Cookie:小甜饼 记录浏览器与服务器交互的状态信息

Host:主机 域名或者地址

Referer:引用地址 防盗链

User-Agent:代理主机(模仿)

 

下拉到页尾,我们将看到最重要的部分-请求内容

我们仔细看会发现,与我们在填写问卷时,所选择,多选,填空内容似乎有所联系。因此,这里便是我们对post请求的切入点。我们也很容易发现其中规律  :

                                           题号x后面+$+选项y+结尾}

接下来我们模拟代码

import requests
import time
from random import randint
import random
from fake_useragent import UserAgent
from time import sleep
import urllib3
urllib3.disable_warnings()def Headers(UserAgent, Virtual_ip):#用户代理 虚拟地址(防止同ip被检测)header = {'host': 'www.wjx.cn','User-Agent': UserAgent,'Content-type': 'application/x-www-form-urlencoded; ','Referer': 'https://www.wjx.cn/jq/63984870.aspx',#刚才引用拷贝过来   'Cookie': "acw_tc=2f624a7115838432797021174e32b93dcaafa9d93ef3d6a56dccffb876a493; .ASPXANONYMOUS=Xu1oLGkt1gEkAAAAODgyOTdjNjQtY2Y2OS00NGZjLWEzMWQtYTFkN2NhMTM5ZGFl3VCUr3-1EJezxhzcyPqUlgTUv8s1; UM_distinctid=170c46a85383d5-0205e032eac378-4313f6a-144000-170c46a8539419; CNZZDATA4478442=cnzz_eid%3D1774923139-1583839423-%26ntime%3D1584027209; crudat=2019-10-17 09:15:37; ConnectQQ=1; SojumpSurvey=01028F271B4FA5C6D708FE8FC72CD6C6C6D70800237100710024006600340037003700340064006400320063006500640036006300610034006400360065003300330038003300620065006200310037006400360063006600650000012F00FF89C3A346804DF45AB44E10AF5D7E5CA287281866; LastCheckUpdateDate=1; Hm_lvt_21be24c80829bd7a683b2c536fcf520b=1583843280,1584031760; _cnzz_CV4478442=%E7%94%A8%E6%88%B7%E7%89%88%E6%9C%AC%7C%E5%85%8D%E8%B4%B9%E7%89%88%7C1584031770893; csrfck=40de0e62-bfc0-4961-9b38-ee69c334ac91; LastActivityJoin=63984870,104777950441; join_63984870=1; SERVERID=0f3eb8fcde19feef85b46d49c555413b|1584032313|1584031739; Hm_lpvt_21be24c80829bd7a683b2c536fcf520b=1584032314", #cooie拷贝过来'X-Forwarded-For': Virtual_ip  #虚拟地址  这里涉及代理服务器转发}return header

引用包(代码注释部分需要注意 host,Referer,Cookie):

  • requests:网络库,进行网络请求
  • random:随机数算法库,进行随机选择
  • fake_useragent:虚拟用户代理,模仿浏览器请求
  • urllib3:网络库

模仿随机选择代码

def Auto(headers):#url地址url = 'https://www.wjx.cn/joinnew/processjq.ashx?submittype=1&curID=63984870&t=1584032334860&starttime=2020%2F3%2F13%200%3A58%3A33&ktimes=92&rn=3065474660&hlv=1&sd=http%3a%2f%2fwww.wjx.cn%2f&jqnonce=f77e224b-3796-47ba-acff-fab242a6fea5&jqsign=d55g006%60%2F15%3B4%2F65%60c%2Fcadd%2Fdc%60060c4dgc7'lists = [] #答案数组for _  in range(1, 4):#循环 从1题到3题if _==1: #如果第一题 随机选第一还是第二temp = randint(1, 2)  s = str(_)+'$'+str(temp)lists.append(s) elif _==2: #多选题n = randint(1, 2)  #选择数目ns = random.sample(range(1,3), n) #1,3之间随机选择n个数字 ns.sort();#排序s='|'.join(str(num) for num in ns) #多选模式s =str(_)+'$'+slists.append(s);elif _==3:s = str(_)+'$'+"无"lists.append(s) #将无添加至末尾data = "submitdata="+"}".join(lists)  #模仿请求体中结构data =data.encode('utf-8').decode("latin1")print(data); r = requests.post(url, headers=headers, data=data, verify=False)result = r.text[:] #打印结果return result

此处我们更改url地址为request请求地址,其余根据设置内容,对下面循环进行定制

 运行代码10表示正确

几秒后 

 

完整代码

 

import requests
import time
from random import randint
import random
from fake_useragent import UserAgent
from time import sleep
import urllib3
urllib3.disable_warnings()def Headers(UserAgent, Virtual_ip):header = {'host': 'www.wjx.cn','User-Agent': UserAgent,'Content-type': 'application/x-www-form-urlencoded; ','Referer': 'https://www.wjx.cn/jq/63984870.aspx','Cookie': "acw_tc=2f624a7115838432797021174e32b93dcaafa9d93ef3d6a56dccffb876a493; .ASPXANONYMOUS=Xu1oLGkt1gEkAAAAODgyOTdjNjQtY2Y2OS00NGZjLWEzMWQtYTFkN2NhMTM5ZGFl3VCUr3-1EJezxhzcyPqUlgTUv8s1; UM_distinctid=170c46a85383d5-0205e032eac378-4313f6a-144000-170c46a8539419; CNZZDATA4478442=cnzz_eid%3D1774923139-1583839423-%26ntime%3D1584027209; crudat=2019-10-17 09:15:37; ConnectQQ=1; SojumpSurvey=01028F271B4FA5C6D708FE8FC72CD6C6C6D70800237100710024006600340037003700340064006400320063006500640036006300610034006400360065003300330038003300620065006200310037006400360063006600650000012F00FF89C3A346804DF45AB44E10AF5D7E5CA287281866; LastCheckUpdateDate=1; Hm_lvt_21be24c80829bd7a683b2c536fcf520b=1583843280,1584031760; _cnzz_CV4478442=%E7%94%A8%E6%88%B7%E7%89%88%E6%9C%AC%7C%E5%85%8D%E8%B4%B9%E7%89%88%7C1584031770893; csrfck=40de0e62-bfc0-4961-9b38-ee69c334ac91; LastActivityJoin=63984870,104777950441; join_63984870=1; SERVERID=0f3eb8fcde19feef85b46d49c555413b|1584032313|1584031739; Hm_lpvt_21be24c80829bd7a683b2c536fcf520b=1584032314",'X-Forwarded-For': Virtual_ip}return headerdef Auto(headers):#url地址url = 'https://www.wjx.cn/joinnew/processjq.ashx?submittype=1&curID=63984870&t=1584032334860&starttime=2020%2F3%2F13%200%3A58%3A33&ktimes=92&rn=3065474660&hlv=1&sd=http%3a%2f%2fwww.wjx.cn%2f&jqnonce=f77e224b-3796-47ba-acff-fab242a6fea5&jqsign=d55g006%60%2F15%3B4%2F65%60c%2Fcadd%2Fdc%60060c4dgc7'lists = [] #答案数组for _  in range(1, 4):#循环 从1题到3题if _==1: #如果第一题 随机选第一还是第二temp = randint(1, 2)  s = str(_)+'$'+str(temp)lists.append(s) elif _==2: #多选题n = randint(1, 2)  #选择数目ns = random.sample(range(1,3), n) #1,3之间随机选择n个数字 ns.sort();#排序s='|'.join(str(num) for num in ns) #多选模式s =str(_)+'$'+slists.append(s);elif _==3:s = str(_)+'$'+"无"lists.append(s) #将无添加至末尾data = "submitdata="+"}".join(lists)  #模仿请求体中结构data =data.encode('utf-8').decode("latin1")print(data); r = requests.post(url, headers=headers, data=data, verify=False)result = r.text[:] #打印结果return result
while True:User_Agent=UserAgent().random;  #随机代理Virtual_ip=str(randint(1,254))+'.'+str(randint(0,254))+'.'+str(randint(0,254))+'.'+str(randint(0,254)) #随机ip格式  xxx.xxx.xxx.xxxprint(User_Agent,Virtual_ip)header=Headers(User_Agent,Virtual_ip)print(header)result=Auto(header)print(result)sleep(1);

结尾:

本文通过post请求介绍http协议内容与请求方式,学艺不精,有错误请指出。谢谢。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问卷星最新调研爬虫自动填写

利用简单权重设置选项比例分配以及条件判断语句即可将问卷往你选择的放向走,需要对前端稍微了解即可,用谷歌的开发者工具查看元素 例如:check rank[i].find_elements(byBy.CLASS_NAME,value"ui-radio") from selenium import webd…

仿造问卷星--开发一套调查问卷设计工具(2/3)--完整流程

本章主要内容是完善index.js逻辑功能。 1&#xff0c;修改index.html&#xff0c;直接copy html和css文件直接从源码中拷贝&#xff1a; html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-eq…

Python自动化问卷填写-问卷星(含完整代码)

目录 一、环境安装二、代码分析&#xff08;一&#xff09;库的引用&#xff08;二&#xff09;驱动的运行&#xff08;三&#xff09;各类题型的程序&#xff08;四&#xff09;主程序&#xff08;根据问卷客制&#xff09; 三、完整代码 由于网上的问卷星填写代码良莠不齐&am…

Python自动化填写问卷星问卷

本文使用pyhton实现常见的问卷星问卷自动化填写。如果出现智能验证&#xff0c;本文还不能有效绕过问卷星提交时出现的智能检测&#xff0c;还需要手动点击智能检测才能完成问卷的填写。 在网络问卷中&#xff0c;我们常见的问题有单选题、多选题和李克勤量表题&#xff0c;如下…

python自动填写问卷星

python自动填写问卷星 参考链接1 参考链接2 用python实现自动填问卷&#xff0c;通过智能验证以及滑动验证 1. 下载浏览器驱动 python自动化填写问卷需要依赖浏览器驱动,这里使用的是谷歌浏览器&#xff0c;所以需要下载chromedriver&#xff0c;且下载的版本要和浏览器版本…

问卷星问卷数据怎么快速导入SPSSAU?

最近收到小伙伴询问问卷星导入的问卷数据怎么编码&#xff1f; 现在的问卷调查&#xff0c;很多都是通过网络问卷的方式进行&#xff0c;问卷星是一个专业的在线问卷调查、测评投票平台&#xff0c;如果你的问卷正好是在问卷星网站发放&#xff0c;填答&#xff0c;回收数据&am…

python问卷星模拟提交

*一、前言 ** 笔者在家闲得无聊&#xff0c;突然想突破一下问卷星的反爬虫机制&#xff0c;顺便刷刷问卷&#xff0c;于是就开始分析了。 ** 二、分析过程 ** 1、fiddler抓包 模拟提交首先当然是打开fiddler看看提交了什么包啦。 2、分析不变参数 我们先来看不变的参数&…

使用python实现问卷星自动答题功能——基础篇

题主在学习的过程中&#xff0c;老是有人来让填问卷星&#xff0c;就觉得人填的很麻烦&#xff0c;于是就自己动手写了一个python脚本来实现自动填写问卷星 1.首先我们得学会使用python里面的一个库&#xff0c;selenium&#xff0c;这个库是用来专门面对浏览器的一个库&#…

用Python实现问卷星自动填写(超详细!!!)

用Python实现问卷星自动填写&#xff08;超详细&#xff01;&#xff01;&#xff01;&#xff09; 前言一、配置环境1.1安装依赖1.2安装驱动 二、实战处理2.1、引入库函数2.2、程序所需函数详解&#xff08;1&#xff09;自定义单选函数&#xff08;2&#xff09;自定义多选函…

自动填写问卷星并提交

自动填写问卷星并提交 鉴于好多小伙伴要做数据分析的时候发放大量的问卷&#xff0c;但收回来的却寥寥无几&#xff0c;还受到其他小伙伴的冷眼&#xff0c;所以在下决定通过代码的方式&#xff0c;来实现问卷星的自动填写并提交。 以谷歌浏览器为例 1.随便到一个页面&#x…

【python】自动填写问卷星问卷及提交

前言&#xff1a;问卷是很好的网络调查方式之一&#xff0c;近年来&#xff0c;问卷星被广泛应用于各方面的调查。本文介绍了利用python代码自动填写问卷星基本题目&#xff0c;拥有自动填写、解决智能验证、批量提交问卷等功能。 目录 1.下载浏览器驱动 2. selenium基本配置…

利用GoogleTampermonkeyModify Headers实现问卷星调查问卷的自动填写提交

前言 首先一个月没有更新博客&#xff0c;是因为去苏州尝试了一下暑假工&#xff0c;然后对于大家在博客留下的评论和问题也没有来得及回复&#xff0c;实在不好意思。不得不说&#xff0c;暑假工挺累的&#xff0c;而且基本上在消磨时间&#xff0c;说实话也不算后悔&#xf…

Python实现问卷星调查问卷自动填写

文章目录 前言一、配置环境1.1 下载依赖selenium1.2 安装chrome驱动1.3 引入库 二、简易版快速上手教程1.自定义变量2.自定以函数3 主函数编写 三 逐步解析1 基础代码2 实现步骤 四 代码总结 前言 如何使用python实现对问卷的自动填写提交任务并且还能解决智能验证问题。 一、…

Mac 软件出现「意外退出」及「打不开」解决方法

解决方法 方法其实有很多种&#xff0c;这里介绍常用的几种 终端法需先安装Xcode或Apple命令行工具 如未装Xcode可以使用下列命令安装Apple命令行工具&#xff08;如安装有Xcode可忽略&#xff09; xcode-select --install 1.终端法 sudo codesign --force --deep --sign -…

postman能正常打开但不显示窗口

1.最近使用postman偶尔出现以下问题 postman在任务栏能正常打开&#xff0c;如下图&#xff0c;使用AltTab也能看到&#xff0c;但是窗口就是显示不了 2.解决方案 将鼠标放在任务栏上&#xff0c;使用快捷键Alt空格&#xff0c;弹出小窗口&#xff0c;然后点击弹框中的最大化…

MPAndroidChart的HorizontalBarChart数值显示不全问题

现在使用的版本是&#xff1a;v3.1.0 方案一&#xff1a; private HorizontalBarChart hor_bar_chart; hor_bar_chart(HorizontalBarChart) findViewById(R.id.hor_barchart); YAxis leftYAxishor_bar_chart.getAxisLeft(); // 设置y轴边距&#xff0c;解决数值过大显示不全问…

解决 echarts 图中 tooltip 文本内容太长导致显示不全

问题&#xff1a; 使用 tooltip 的 extraCssText&#xff0c;高效方便 tooltip: {show:true,trigger: "axis",confine: true, // 文本太长自动换行extraCssText: white-space: normal; word-break: break-all;, // 文本太长自动换行效果&#xff1a;

CoordinatorLayout显示不全问题

问题一 <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"android:layout_width"match_parent"android:layout_height&…

在html中页面不全,网页显示不全,教您网页显示不全怎么办

当我们在电脑系统中使用IE浏览器浏览网页时&#xff0c;偶尔会出现是否只查看安全内容的提示&#xff0c;甚至有可能会出现页面显示不全的情况。一般遇到这种情况会选择继续查看网页内容&#xff0c;怎么去处理&#xff1f;下面&#xff0c;小编给大家介绍网页显示不全的解决步…