scrapy_cookie_header 处理
2016-01-05 00:00
134 查看
start_urls=['http://login.bioon.com/login']
def parse(self,response):
#从response.headers中获取cookies信息
r_headers = response.headers['Set-Cookie']
cookies_v = r_headers.split(';')[0].split('=')
cookies = {cookies_v[0]:cookies_v[1]}
#模拟请求的头部信息
headers = {
'Host': 'login.bioon.com',
'Referer':'http://login.bioon.com/login',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0',
'X-Requested-With':'XMLHttpRequest'
}
#获取验证信息
csrf_token = response.xpath(
'//input[@id="csrf_token"]/@value ').extract()[0]
#获得post的目的URL
login_url = response.xpath(
'//form[@id="login_form"]/@action ').extract()[0]
end_login = response.urljoin(login_url)
#生成post的数据
formdata={
#请使用自己注册的用户名
'account':'********',
'client_id':'usercenter',
'csrf_token':csrf_token,
'grant_type':'grant_type',
'redirect_uri':'http://login.bioon.com/userinfo',
#请使用自己注册的用户名
'username':'********',
#请使用自己用户名的密码
'password':'xxxxxxx',
}
#模拟登录请求
return FormRequest(
end_login,
formdata=formdata,
headers=headers,
cookies=cookies,
callback=self.after_login
)
def parse(self,response):
#从response.headers中获取cookies信息
r_headers = response.headers['Set-Cookie']
cookies_v = r_headers.split(';')[0].split('=')
cookies = {cookies_v[0]:cookies_v[1]}
#模拟请求的头部信息
headers = {
'Host': 'login.bioon.com',
'Referer':'http://login.bioon.com/login',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0',
'X-Requested-With':'XMLHttpRequest'
}
#获取验证信息
csrf_token = response.xpath(
'//input[@id="csrf_token"]/@value ').extract()[0]
#获得post的目的URL
login_url = response.xpath(
'//form[@id="login_form"]/@action ').extract()[0]
end_login = response.urljoin(login_url)
#生成post的数据
formdata={
#请使用自己注册的用户名
'account':'********',
'client_id':'usercenter',
'csrf_token':csrf_token,
'grant_type':'grant_type',
'redirect_uri':'http://login.bioon.com/userinfo',
#请使用自己注册的用户名
'username':'********',
#请使用自己用户名的密码
'password':'xxxxxxx',
}
#模拟登录请求
return FormRequest(
end_login,
formdata=formdata,
headers=headers,
cookies=cookies,
callback=self.after_login
)
相关文章推荐
- 天下数据解析服务器独享与共享的区别
- 创业的第一百零一天
- EF实体模型的更新
- iOS开发:2分钟快速集成支付宝快捷支付 转发
- 在 Windows 上使用 noinstall Zip 文件安装 MySQL
- 网站死链SEO处理——百度
- MongoDB 创建、更新、删除 文档
- 网络爬虫基础
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- Java:String和Date、Timestamp之间的转换
- javascript时间戳和日期字符串相互转换
- Tomcat 关闭钩子
- Javascript try catch finally
- 项目前端开发常用插件汇总
- js 回车事件兼容多个浏览器
- javascript 中的each 跳出循环 全角字符判断
- ubuntu安装到选择时区时黑屏
- eclipse validating 卡死
- app 生命周期