zoukankan      html  css  js  c++  java
  • 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 start_requests(self):
     5         url = 'http://www.renren.com/PLogin.do'
     6  
     7         # FormRequest 是Scrapy发送POST请求的方法
     8         yield scrapy.FormRequest(
     9             url = url,
    10             formdata = {"email" : "xxx", "password" : "xxx"},
    11             callback = self.parse_page
    12         )
    13     def parse_page(self, response):
    14         # do something

     注意:表单数据的提交使用formdata,方法之间的传参依然使用meta,例如:

    class mySpider(scrapy.Spider):
        # start_urls = ["http://www.example.com/"]
     
        def start_requests(self):
            url = 'http://www.renren.com/PLogin.do'
     
            # FormRequest 是Scrapy发送POST请求的方法
            yield scrapy.FormRequest(
                url = url,
                formdata = {"email" : "xxx", "password" : "xxxxx"},
                callback = self.parse_page,
            meta = {"key1":"value1","key2":"value2"}
            )
        def parse_page(self, response):
        value1 = response.meta["key1"]
            # do something
  • 相关阅读:
    SSH框架——Sprign声明式事务
    SSH框架的简化
    Spring声明式事务管理
    简化注解shh框架
    ssh 的搭建
    基础篇-spring包的下载
    基础篇-struts2的搭建
    spring声明式事务管理
    shh简化
    shh(struts+spring+Hibernate)的搭建
  • 原文地址:https://www.cnblogs.com/wanglinjie/p/9246613.html
Copyright © 2011-2022 走看看