zoukankan      html  css  js  c++  java
  • 发起post请求

    scrapy发起post请求的两种方式

    一定要对start_requests方法进行重写

     1.Request方法中给method属性复制成post

     2.FormRequest()进行post请求的发送

    方法1(不建议使用):

     

    import scrapy
    
    
    class PostexampleSpider(scrapy.Spider):
        name = 'postexample'
        # allowed_domains = ['www.baidu.com']
        start_urls = ['https://www.baidu.com/']
    
        def start_requests(self):
         
            for url in self.start_urls:
                yield scrapy.Request(url=url, callback=self.parse,  method="post")
    
        def parse(self, response):
            pass

    方法2(推荐用scrapy.FormRequest):

    import scrapy
    
    
    class PostexampleSpider(scrapy.Spider):
        name = 'postexample'
        # allowed_domains = ['www.baidu.com']
        start_urls = ['https://fanyi.baidu.com/sug']
    
        def start_requests(self):
            print("start_requests()")
            # post请求参数
            data = {
                "kw": "dog"
            }
            for url in self.start_urls:
                # formdata 请求参数对应的字典参数
                yield scrapy.FormRequest(url=url, formdata=data, callback=self.parse)
    
        def parse(self, response):
            print(response.text)
  • 相关阅读:
    HDU 3081 Marriage Match II
    HDU 4292 Food
    HDU 4322 Candy
    HDU 4183 Pahom on Water
    POJ 1966 Cable TV Network
    HDU 3605 Escape
    HDU 3338 Kakuro Extension
    HDU 3572 Task Schedule
    HDU 3998 Sequence
    Burning Midnight Oil
  • 原文地址:https://www.cnblogs.com/cjj-zyj/p/10143978.html
Copyright © 2011-2022 走看看