作者:Harkerbest

声明:本文章为原创文章,本文章永久链接:https://harkerbest.kafuu.net.cn/?p=163,转载请注明原文地址,盗版必究!!!

警告:本文章仅用于技术交流,禁止将本文章内容用于违法犯罪活动,违者后果自负!!!

本教程也可用于Python requests使用post提交表单的教学

随着网络化的普及,网络调查表在生活中随处可见,但是有些时候,我们每天都需要填写一些内容比较固定的调查表,比如说体温填报、健康登记等等,作为一名程序员,我们应该把这些机械的操作交给电脑,让电脑造福人类。今天小编就来教大家如何使用Python爬虫实现自动填写网络调查表。这样,我们只需要将编写好的脚本部署到服务器上就能够每天定时完成填写表格的任务了。

思路:

一般情况下,网络调查表网站都会将你填写好的信息以表单的形式Post上去,因此我们有两种方法可以实现自动填写,一种是使用Selenium模拟操作浏览器,在填写调查表的网页上通过id等元素进行定位并找到对应的输入方框将预先设置好的内容填入,最后再模拟点击提交按钮进行提交。这种方法的优点是简单方便,如果无法通过抓包找到网站提交信息的方式,那么这是一种很好的方法,但是这种方法的缺点也很明显,就是耗时大,完成启动浏览器并填写数据至少也要10秒的时间,同时由于是可视化界面,需要很大的负载,如果是个人电脑则没有太大的影响,但是如果是在生产环境下部署,很可能会使服务器内存爆满,因此这个方法并不适合生产环境下使用。

第二种方法,也是小编今天给大家介绍的方法,就是通过抓包找到网站提交数据时Post表单的URL地址并使用requests进行模拟提交表单,这样就能够既快捷又不占用内存地进行自动填写调查表了。下面开始今天的教程!

(一)抓包分析表单

今天小编以某问卷网站进行演示,使用Python爬虫自动填写健康调查表。

首先我们需要通过抓包的方式找到网站使用post方式提交数据的URL地址和提交的表单的规律。方法如下:

1.访问问卷填写页面并填写信息

这里的信息可以随意填写,只需要记住在那个部分填写了什么就好。(如图)

在网页中填写好信息

2.按F12进入开发者工具并点击Network选项

注意:这一步一定不能调换顺序,必须在点击按钮提交信息之前进入开发者工具,否则无法抓取到数据包!!!

首先按下F12进入开发者工具(不同浏览器可能会不同,具体可以百度),接下来选择Network选项。(如图)

按F12进入开发者工具并选择Network选项

3.点击提交按钮进行提交并分析抓包数据

点击提交按钮后可以看到右边开发者工具中出现大量请求信息(如图)

开发者工具中出现大量请求信息

一般情况下,提交数据的post请求在按钮按下的时候就会发出,因此我们从最上面开始一个一个寻找……

经过寻找,发现在较前面有一个请求为post请求,并且post的表单(Form Data)内信息为之前填写的信息(如图),因此可以判定这一请求就是网站提交数据的请求。

请求方式为Post

提交表单(Form Data)内信息为之前所填写信息

Requests Headers

其中第一幅图内的Requests URL为下文需要用到的URL,第二幅图的Form Data为下文用于提交表单的内容,第三幅图的requests headers即为下文提到的(请求头)headers。

接下来我们将利用Python使用抓取到的URL以及表单(Form Data)等信息进行模拟提交表单实现自动提交调查问卷。

(二)使用Python进行模拟提交表单

本教程需要用到Python的requests库,如果没有安装的请在命令提示符(cmd)中键入以下命令安装:

pip install requests

1.设置URL并构造表单和请求头(headers)

import requests #导入requests库

url='https://xxxxx.com/xxxxx' #设置URL,其中URL为上文抓取到请求内容的Requests URL

data={'submitdata':'xxxxxxxxx'} #设置表单,内容为上文中抓取到的Form Data,其中表单形式为Python的字典

headers={#header内容即为上文中的requests headers,形式为Python字典,一般只需要将User-Agent和Referer填入即可

' User-Agent':'xxxxxxx'

'Referer':'https://xxxxx'

}

2.使用设置好的URL、表单和请求头提交表单

提交表单只需要一行代码即可解决:

sourse=requests.post(url,data=data,headers=headers).text

#其中url,data,headers均为上文设置好的内容,.text的作用是将返回的Response转化为Python的字符串,执行后返回的结果将赋值给sourse。

执行后可以根据返回的结果自行分析提交是否成功(由于不同网站返回结果不一样,所以这里无法做分析),通常网站返回的会是下一个网页的源码或者是一个json的成功提示,具体需要自行分析。

全部代码

这里附上全部代码,由于Python爬虫的特殊性,不同的网站可能会需要部分改动,但是方法是不变的。因此,遇到特殊情况时需要根据本文的方法去仔细琢磨,要相信自己能够解决问题!

import requests #导入requests库

url='https://xxxxx.com/xxxxx' #设置URL,其中URL为上文抓取到请求内容的Requests URL

data={'submitdata':'xxxxxxxxx'} #设置表单,内容为上文中抓取到的Form Data,其中表单形式为Python的字典

headers={#header内容即为上文中的requests headers,形式为Python字典,一般只需要将User-Agent和Referer填入即可

' User-Agent':'xxxxxxx'

'Referer':'https://xxxxx'

}

sourse=requests.post(url,data=data,headers=headers).text

#其中url,data,headers均为上文设置好的内容,.text的作用是将返回的Response转化为Python的字符串,执行后返回的结果将赋值给sourse。

print(sourse)#根据返回信息判断是否提交成功

结语:

到这里本教程就结束了,希望能够帮到大家,如果你觉得这篇文章对你有帮助,请分享给更多需要的人,谢谢!!!

python批量自动填写网页表单_Python爬虫自动填写调查表相关推荐

  1. python自动提交网页表单_python自动提交表单数据库

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. 怎样控制键盘按键自动填写网页表单

    浏览器中使用模拟键盘按键填写网页表单,不但可以完成数据输入,输入时还能真实地触发键盘元素绑定的键盘事件. 打开木头浏览器的工具菜单,进入项目管理容器,创建"填写内容"步骤,并打开百 ...

  3. Delphi自动提交网页表单和获取框架网页源码

    这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能. 首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用. 然后,在窗体上放置一个TWeb ...

  4. 如何自动填充网页表单_iCab for Mac(web网页浏览器)

    iCab for Mac是一款小巧实用的web网页浏览器,支持HTML4,图像过滤,cookie过滤,书签,java和javascript支持,搜索模式,从资源管理器导入Web档案,下载管理器以及许多 ...

  5. python批量自动填写网页表单_使用python+selenium帮助你填写网站表单

    应用场景:频繁往网站.电商平台后台等填写数据. 工作场景:电商上传商品.测试人员.批量提交表单等. 涉及内容:python读写EXCEL文件.selenium基础使用.Xpath基础使用.python ...

  6. 火狐浏览器Firefox 如何使用iMacros 自动填写网页表单

    1 我们首先访问一个想要自动填写表单的网站.我们以百度为例,右侧有登录窗口. 2 然后我们点开刚安装上的iMacros插件,一般安装之后就会自动出现在浏览器的某个地方,点击记录选项卡,再点击记录. 3 ...

  7. Java开发必须要会!java自动填写网页表单

    话不多说,先上张图 一.微服务必备技能: 二.一起从浅入深理解DUBBO! **先来看一份DUBBO脑图:**HelloWorld+前置知识+适合群体+架构(核心点:生产者 消费者问题 特点:连通性, ...

  8. python 批量下载知网(cnki)论文_Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记...

    ‍Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记‍ 由于需要也是为了督促自己学习新的东西,我原本想要尝试着写一个爬虫程序,能够在cnki上自动得将论文进行批量 ...

  9. python 批量下载知网(cnki)论文_Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记 顶...

    ‍Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记‍ 由于需要也是为了督促自己学习新的东西,我原本想要尝试着写一个爬虫程序,能够在cnki上自动得将论文进行批量 ...

  10. 如何自动填充网页表单_流量型称重型充绒机充棉机如何选择,教你轻松辨别全自动填充机器...

    秋冬季节的气温骤降让羽绒制品棉服等的市场需求急剧增大.服装加工厂及家纺工厂的订单量也逐步递增.单靠手工加工所提供的加工速率已很难跟上需求的制作.而全自动的填充机器可以节约大量的人工成本,同时在加工速度 ...

最新文章

  1. jquery text html width heigth的用法
  2. pywinauto二次封装(pywinnat.py)
  3. 生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...
  4. php做一个微信退款,PHP实现微信申请退款流程实例代码
  5. 腾讯网易禁止未成年人本周六玩游戏
  6. python绘制多条不同x轴曲线_python matlibplot绘制多条曲线图
  7. Codevs 2989 寻找somebody
  8. pip添加国内镜像源
  9. 在 MVC 控制器中使用 构造函数时行依赖注入 (IoC)
  10. 图片不存放文件夹,直接存在数据库中,
  11. html+css的响应式个人简历
  12. 大淘客cms源码三合一导航,自定义底部导航腰部导航
  13. Python模拟登陆强智教务以及使用(持续更新中)
  14. VSS无法访问 (0x80072EFD) 转载
  15. 【多目标优化】3. 基于分解的多目标进化算法 —(MOEA/D)
  16. 安卓开机自启动app
  17. 扁平化风格博客——后续
  18. Manjaro快速上手指南-微信、TIM/QQ、网易云音乐、WPS等等
  19. 虚拟机桌面快捷方式不见了……
  20. Tensorflow.js||使用 CNN 识别手写数字

热门文章

  1. Word文档怎么删除html标签,word删除指定页面
  2. php获取肖前时间,实践唯物主义哲学”简介创始人:肖前、高清海等(​贰·综合哲学类4)...
  3. 网易云团队前端单元测试技术方案总结,测试人员必备知识
  4. AI:从游戏引擎--到AI
  5. 计算机操作痕迹清除,如何彻底清除电脑使用痕迹
  6. 使用Python在Windows环境下切换输入法
  7. 《HarmonyOS开发 - 小凌派-RK2206开发笔记》第3章 应用开发
  8. 最大网络流的多种解法(洛谷P3376 网络最大流 为例)
  9. Android KeyStore的使用
  10. 在html中 创建超链接使用的标记是,建立超链接标记是什么