scrapy发送post请求获取cookie

from scrapy.http import Request,FormRequest
  def start_requests(self):
        return [Request(‘http://www.com/login.htm‘, meta={‘cookiejar‘: 1}, callback=self.parse)]

    def parse(self, response):
        url = ‘http://www.com/login.htm‘
        data = {
           #这里放data数据
        }
        yield  FormRequest.from_response(response,
                                          url=url,  # 真实post地址
                                          meta={‘cookiejar‘: response.meta[‘cookiejar‘]},
                                          formdata=data,
                                          callback=self.next
                                          )

    def next(self,response):
        cookie = response.request.headers.getlist(‘Cookie‘)[0].decode()
        self.cookie = dict([l.split("=", 1) for l in cookie.split("; ")])
        url = "http://www.com/index.htm"
        yield scrapy.Request(url=url,cookies=self.cookie,callback=self.get_parse,dont_filter=True)

  

原文地址:https://www.cnblogs.com/qiaoer1993/p/11049846.html

时间: 2024-07-30 15:55:27

scrapy发送post请求获取cookie的相关文章

scrapy发送POST请求

发送post请求 可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求. 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self) 方法,并且不再调用start_urls里的url. 1 class mySpider(scrapy.Spider): 2 # start_urls = ["http://www.example.com/"] 3 4 def star

Android利用异步任务AsyncTask发送post请求获取json数据

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: l  简单,快捷 l  过程可控 使用的缺点: l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2 )Handler异步实现的原理和适用的优缺点 AsyncTask介绍 Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理.

iOS-WKWebView携带cookie发送http请求,cookie失效

发送请求代码: NSString *testUrl = @"http://10.22.122.7:8081/test2_action/view_index"; NSURL *url = [NSURL URLWithString:testUrl]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy tim

Hbuilder MUI里面使用java.net.URL发送网络请求,操作cookie

1. 引入所需网络请求类: var URL = plus.android.importClass("java.net.URL"); var URLConnection = plus.android.importClass("java.net.URLConnection"); var BufferedReader = plus.android.importClass("java.io.BufferedReader"); var InputStrea

Redux中发送异步请求获取数据

一.在componentDidMount中进行异步数据的获取 二.通过initListAction创建action 三.然后再通过store.dispatch派发给store 四.store再自动转发给reducer 五.reducer通过深拷贝处理数据后,再将newState返回给store 原文地址:https://www.cnblogs.com/nayek/p/12388881.html

scrapy基础知识之发送POST请求:

可以使用 yield scrapy.FormRequest(url, formdata, callback)方法发送POST请求. 如果希望程序执行一开始就发送POST请求,可以重写Spider类的start_requests(self) 方法,并且不再调用start_urls里的url. class mySpider(scrapy.Spider): # start_urls = ["http://www.example.com/"] def start_requests(self):

在后台程序中发送http请求并获取响应数据

一,在后台程序中发送http请求获取响应数据 1)以 http://libs.baidu.com/jquery/2.0.0/jquery.min.js 为例 二, 1) String result=""; BufferedReader in = null; URL url = null; try { url = new URL("http://libs.baidu.com/jquery/2.0.0/jquery.min.js"); } catch (Malforme

python发送网络请求

1.使用urllib模块 get请求: res = urlopen(url) from urllib.request import urlopen url = 'http://www.nnzhp.cn' print(urlopen(url))#返回http.client.HTTPResponse object at 0x00000235BA25A160 print(urlopen(url).read().decode())#返回get到的页面的源代码 # decode是将base类型转为enco

.net中如何发送HTTP请求网络资源

应用场景 应该说只要是需要通过发送Http请求获取网络资源的地方都要使用它,网络资源可以是指以URI来表示的资源,比如web api接口等. HttpWebRequest .net2.0 ~ .net4.0使用HttpWebRequest 代码如下: 1 //.net2.0 ~ .net4.0使用HttpWebRequest 2 var request = (HttpWebRequest)WebRequest.Create(requestUrl); 3 var response = reques