为什么要模拟表单提交
为什么要模拟表单提交
现在许多的网站都是需要登录验证后才能访问该网站的页面,爬虫(网络机器人【spider】)该怎么获取这些页面呢!是的,爬虫也是需要登录的,才能获取到后面的页面。
爬虫怎么模拟表单登录
- 复杂的办法,先爬取登录界面,得到登录表单需要的数据
import requests
from bs4 import BeaytifulSoupdef main(): resp = request.get('https://github.com/login') # 判断服务器返回的状态码是不是200(表示成功) if resp .status_code != 200: return # 获取返回对象里的cookies cookies = resp.cookies.get_dict(www.dejiaylsmile.cn) soup = BeautifulSoup(resp.text,'lxml') utf_8_value = soup.select_one('form input[name=utf8]').attrs['value'] # 得到csrf authenticity_token = authenticity_token = soup.select_one('form input[name=authenticity_token]').attrs['value'] # 把提交表单的数据放在字典 data = { 'utf8': utf8_value, 'authenticity_token':www.wmyl11.com m authenticity_token, 'login': '1304173787@qq.com', 'password': 'lijin136283', } # 发出提交表单的post请求 resp = requests.post('http://github.com/session', data=data, cookies=cookies) if __name__ == '__main__': main()
- 简单的方法,直接用python模块(robobrowser)
pip install robobrowser # 安装模块
- 1
import requests
import robobrowserdef mian(): # 获取对象 b = robobrowser.RoboBrowser(www.leyouzaixian2.com parser='lxml') # 打开表单的网址 b.open('https://www.yingka178.com /login') # 获得要提交的哪个表单 f = b.get_form(action='/session') # 登录的账号 f['login'].value = '1304173787@qq.com' # 登录的密码 f['password'].value = 'lijin' # 提交表单 b.submit_form(f) # 获取提交成功后主页的数据 for a_tag in b.select('a[href]'): print(a_tag.attrs['href']) if __name__ == '__main__': main(www.dfzx157.com)
这两个表单的提交都是在没有验证码的情况下实现的。但是现实中,每个网站都为了防止机器提交表单,都有相应的验证码。
为什么要模拟表单提交相关推荐
- python图书馆抢座_python模拟表单提交登录图书馆
本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下 模拟表单提交的原理: 我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和 ...
- php模拟表单提交登录,PHP模拟表单的post请求实现登录
'stuid' => $stuid, 'pwd' => $pwd ); $ch = curl_init (); //初始化curl curl_setopt ( $ch, CURLOPT_U ...
- php 模拟表单提交-get-post
<?php header("Content-Type: text/html; charset=utf-8");/*** Class SimulantForm 模拟表单*/ c ...
- ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传
---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...
- curl 模拟表单提交
//GET方式 $url = "/Api/Raiders/doEditRaiders?content=123"; $ch = curl_init (); curl_setopt ( ...
- qt向服务器传输文字_Qt 模拟 HTTP 表单提交文字或文件到服务器
传统通过 HTTP 表单的方式来上传文件在 Web 中实现是非常简单的,一个表单中加几个域填写上对应的内容提交就可以了,但如果通过 Qt 来实现就相对麻烦一点,不过我都总结好了代码,直接使用就可以了. ...
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题...
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- AJAX学习笔记——发送AJAX的POST请求,模拟from表单提交
关于AJAX发送POST请求,首先演示一个小案例. 当输入用户名:张三,密码:123.点击发送请求按钮 这是用post请求模拟的表单提交.接下来看一下如何用AJAX发送POST请求 后端代码: @We ...
- JS模拟Form表单提交
用java写了一个下载的功能,测试没有问题,但前台就是不弹出下载的提示框. 后来发现如果你的提交方式是ajax的方式的话是不会弹出提示框的,然后换成了form提交,顺利弹框通过,下来我们就用js模拟f ...
最新文章
- python3 语言翻译相关库
- 如何短时间提高python面向对象_初识Python面向对象阶段,你们都是怎么过来的?
- java修饰符重新学习日记一
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )
- 2021-11-14Iterator迭代器
- [分享]Windows Phone 7 For Dummies
- 【转贴】ASP.NET 3.5中的ListView控件和DataPager控件
- pandas DataFrame数据转为list
- golang中字符串常用的命令
- 如何使用计算机模拟,手把手教你电脑手机模拟器MuMu模拟器怎么使用
- 钢笔工具(贝塞尔曲线)
- python可以这样学读后感_《Python深度学习》读后感
- 华为AI四小龙兵临城下,海大宇如何反围剿?
- 微分中值定理—罗尔中值定理
- 负反馈元器件参数对功放性能的影响
- 微信登录开发-java
- Smokeping安装教程
- win10+Docker Toolbox+mysql
- VMware vMotion简介
- 大学计算机数学基础2,计算机数学基础-中国大学mooc-题库零氪