为什么要模拟表单提交

现在许多的网站都是需要登录验证后才能访问该网站的页面,爬虫(网络机器人【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) 

这两个表单的提交都是在没有验证码的情况下实现的。但是现实中,每个网站都为了防止机器提交表单,都有相应的验证码。

为什么要模拟表单提交相关推荐

  1. python图书馆抢座_python模拟表单提交登录图书馆

    本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下 模拟表单提交的原理: 我们都知道Http是无状态的,所以当我们提交的数据和浏览器中正常提交一样,那么服务器就会返回和 ...

  2. php模拟表单提交登录,PHP模拟表单的post请求实现登录

    'stuid' => $stuid, 'pwd' => $pwd ); $ch = curl_init (); //初始化curl curl_setopt ( $ch, CURLOPT_U ...

  3. php 模拟表单提交-get-post

    <?php header("Content-Type: text/html; charset=utf-8");/*** Class SimulantForm 模拟表单*/ c ...

  4. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传

    ---恢复内容开始--- Ajax提交表单.使用FormData提交表单数据和上传的文件(这里的后台使用C#获取,你可以使用Java一样获取) 有时候前台的数据提交到后台,不想使用form表单上传,希 ...

  5. curl 模拟表单提交

    //GET方式 $url = "/Api/Raiders/doEditRaiders?content=123"; $ch = curl_init (); curl_setopt ( ...

  6. qt向服务器传输文字_Qt 模拟 HTTP 表单提交文字或文件到服务器

    传统通过 HTTP 表单的方式来上传文件在 Web 中实现是非常简单的,一个表单中加几个域填写上对应的内容提交就可以了,但如果通过 Qt 来实现就相对麻烦一点,不过我都总结好了代码,直接使用就可以了. ...

  7. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题...

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  8. AJAX学习笔记——发送AJAX的POST请求,模拟from表单提交

    关于AJAX发送POST请求,首先演示一个小案例. 当输入用户名:张三,密码:123.点击发送请求按钮 这是用post请求模拟的表单提交.接下来看一下如何用AJAX发送POST请求 后端代码: @We ...

  9. JS模拟Form表单提交

    用java写了一个下载的功能,测试没有问题,但前台就是不弹出下载的提示框. 后来发现如果你的提交方式是ajax的方式的话是不会弹出提示框的,然后换成了form提交,顺利弹框通过,下来我们就用js模拟f ...

最新文章

  1. python3 语言翻译相关库
  2. 如何短时间提高python面向对象_初识Python面向对象阶段,你们都是怎么过来的?
  3. java修饰符重新学习日记一
  4. 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )
  5. 2021-11-14Iterator迭代器
  6. [分享]Windows Phone 7 For Dummies
  7. 【转贴】ASP.NET 3.5中的ListView控件和DataPager控件
  8. pandas DataFrame数据转为list
  9. golang中字符串常用的命令
  10. 如何使用计算机模拟,手把手教你电脑手机模拟器MuMu模拟器怎么使用
  11. 钢笔工具(贝塞尔曲线)
  12. python可以这样学读后感_《Python深度学习》读后感
  13. 华为AI四小龙兵临城下,海大宇如何反围剿?
  14. 微分中值定理—罗尔中值定理
  15. 负反馈元器件参数对功放性能的影响
  16. 微信登录开发-java
  17. Smokeping安装教程
  18. win10+Docker Toolbox+mysql
  19. VMware vMotion简介
  20. 大学计算机数学基础2,计算机数学基础-中国大学mooc-题库零氪

热门文章

  1. 精品家具办公桌椅企业html5官网模板
  2. 百度SEO Keyword Surfer v0.3.7(关键词优化)
  3. discuz集思街淘宝客模板
  4. Spring Cloud微服务之模块依赖修改(六)
  5. 教程:VS2010 之TFS入门指南
  6. 理解WordPress的PingBack和TrackBack
  7. 窗口,视图,视图控制器和UIKit基础-IOS开发
  8. RewriteCond 详解
  9. 最小生成树——安慰奶牛(蓝桥杯试题集)
  10. LinuxCNC解析(一)之安装Linuxcnc所需要的依赖包