发起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)

原文地址:https://www.cnblogs.com/cjj-zyj/p/10143978.html

时间: 2024-08-03 18:04:28

发起post请求的相关文章

libcurl发起post请求时间延迟问题。except为空即可

最近在做团购酒店APP分享到qzone功能,使用libcurl访问qzone的分享cgi接口,酒店分享信息以POST方式传输,在测试的时候发现分享接口平均有2s的延迟,这延迟也太大了吧,于是乎问了空间的接口人,答曰:怎么可能,这个接口的平均调用时延是100-200ms,肯定是你的代码有问题.好吧,开始检查代码,使用strace -p跟踪系统调用,发现curl发送了两次请求,其中第一次请求的响应特别的慢,额,原来这个才是导致延迟的罪魁祸首,tcpdump之后发现curl发送的第一个请求包含一个Ex

用curl发起https请求

使用curl发起https请求 使用curl如果想发起的https请求正常的话有2种做法: 方法一.设定为不验证证书和host. 在执行curl_exec()之前.设置option $ch = curl_init(); ...... curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 方法二.设定一个正确的证书. 本地ssl判别证书太旧,导致链接报错ssl

C#的百度地图开发(一)发起HTTP请求

百度地图的开发文档中给出了很多的事例,而当用到具体的语言来开发时,又会有些差异.我是使用C#来开发的.在获取相应的数据时,需要通过URL传值,然后获取相应的返回值(这一点很多平台的开发都是如此:比如微信的企业号).所以我们第一步要解决的就是如何发起URL请求. 如果是在前端,我们可以很轻易的发起URL请求,就是在浏览器的地址栏中输入URL即可,那么在C#的后台要如何发起请求呢?来看下面的代码: [csharp] view plaincopy /// <summary> /// 向指定URL发起

发起https请求并获取结果

/**     * 发起https请求并获取结果     *      * @param requestUrl     *            请求地址     * @param requestMethod     *            请求方式     * @param outputStr     *            请求数据     * @return     * @throws Exception     */    public static String MsgHttpsR

接入支付宝支付接口(一):发起支付请求

一.前言 在接入支付宝接口之前,需要在支付宝官网进行应用注册和实名认证,地址不再贴出. 在此,贴出支付宝开放平台文档地址:https://docs.open.alipay.com/58/103585/ 在这个地址中,详细介绍了如何接入支付宝接口 二.发起请求 支付宝的签名方式等不做详细介绍,在开发文档中有详细说明,笔者建议:编码格式请使用UTF-8. 接下来的介绍中,主要贴出代码(代码仅供参考) 在贴出代码之前,首先大致了解一下如何发起支付请求: 第一步:组装阿里参数 该步骤组装的参数来自于商户

使用 HttpRequester 更方便的发起 HTTP 请求

原文:使用 HttpRequester 更方便的发起 HTTP 请求 使用 HttpRequester 更方便的发起 HTTP 请求 Intro 一直感觉 .net 里面(这里主要说的是 .net framework 下)发送 HTTP 请求的方式用着不是特别好用,而且在 .net framework 里发送 HTTP 请求的方式有好几种,如:WebClient/WebRequest/HttpClient,于是自己封装了一个?HttpRequester WebClient 主要是用来下载,不能对

利用python发起http请求:多条测试用例同时执行来测试登录接口

#1.导入requests模块 import requests #2.定义接口地址login_url='http://ip:9999/futureloan/mvc/api/member/login' #3.定义测试数据test_case=[{'case_id':1,'title':'正常登录','data':{'mobilephone':'13502288211','pwd':'123456'},'method':'get','expected':'10001'}, {'case_id':2,'

nodejs发起HTTPS请求并获取数据

var https = require('https'); var zlib = require('zlib'); var post_data="………………";//请求数据 var reqdata = JSON.stringify(post_data); var options = { hostname: '10.225.***.***', port: '8443', path: '/data/table/list', method: 'POST', rejectUnauthoriz

HttpUrlConnection发起POST请求

1 StringBuffer str=new StringBuffer(); 2 Map<String,Object> requestParamsMap = new HashMap<String, Object>(); 3 requestParamsMap.put("type",0);//添加绑定参数 4 Iterator it=requestParamsMap.entrySet().iterator();//获取迭代器 5 while(it.hasNext()