您的位置:首页 > 其它

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()的方式

    来定为位置

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: