Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)
2019-01-15 21:58
507 查看
1.在有的网站的的登录的界面上,有用户名以及输入密码的输入框
然后输入账号和密码进去,点击登录,后台就会把得到的数据发送过去,验证之后然后就登录成功了,就会跳转到
响应的登录之后的网站
2. 我们可以找到这个登录网站,可以请求这个网站,请求的时候带上所携带的from表单中的数据
然后就可以获取到登录之后的界面了
3. scrapy.Request() 方法是用来发送get()请求的,
scrapy.FormRequest()方法是来发送post请求的,在发送post请求的时候
我们要 有post请求的url地址,以及post数据 、 还有登录之后的回调函数
4. 使用post请求的第一种方式:携带表单的数据请求post的请求url,
scrapy.FormRequest()在parse函数中编写
例如:
[code]'''表单数据''' post_data = dict( login="用户名", password="密码", utf8=utf8, authenticity_token=authenticity_token, commit=commit ) '''表单请求''' yield scrapy.FormRequest( "post请求网址", formdata=post_data, callback='登录之后的回调函数' )5. 使用post请求的第二方式,
如果表单里面有 action对应的网址 ,只要找到的输入框和密码框的,然后进行登录
方法 scrapy.FormRequest.from_response(response,formdata={})
from_response的意思就是从响应中找到from表单进行登录,自动找到表单进行登录
[code]yield scrapy.FormRequest.from_response( response, # 自动的从response中寻找from表单 '''发送的表单里面的键,和网页上的标签要一致''' formdata={"login": "用户名", "password": "密码"}, callback='对应的回调函数' )如果有多个表单,我们可以看from_response()的源码,
通过里面参数例如,formname、formid等就可以帮助我们定义form表单的位置,也可以通过formxpath()的方式
来定为位置
相关文章推荐
- Scrapy模拟表单和Ajax发送POST请求
- Python爬虫scrapy框架发送POST请求以及自定义中间件(使用Cookie池,获取Cookie)——登录,爬取微博
- Java 后台模拟发送 POST GET 请求
- php模拟发送GET和POST请求
- [置顶] 针对 android端模拟教务系统登陆,主要针对抓包过程,post,get请求,和解析网页和cookie(一)
- Android网络框架-Volley(四) 使用get和post方法发送json请求
- php 模拟浏览器 发送 post 和 get 请求(兼容curl + file_get_contents)
- java apache commons HttpClient发送get和post请求的学习整理(转)
- Http学习之使用HttpURLConnection发送post和get请求
- java apache commons HttpClient发送get和post请求的学习整理
- PHP模拟发送POST请求之五curl基本使用和多线程优化
- POST获取网易博客数据(网页抓取,模拟登陆资料学习备份)
- 利用fiddler模拟发送json数据的post请求
- python--模拟POST登陆请求(待优化)
- java 模拟发送post请求测试
- CSDN_VB自动登陆网络站点详解(四):在WebBrowser中发送POST请求
- Http学习之使用HttpURLConnection发送post请求深入
- Http学习之使用HttpURLConnection发送post和get请求
- Java模拟POST请求发送二进制数据
- 通过HttpWebRequest 发送 POST 请求实现自动登陆