1、可以使用`yield scrapy.FormRequest(url,formdata,callback)`方法发送POST请求。

 其中构造参数formdata可以是字典,也可以是可迭代的(key,value)元组,代表着需要提交的表单数据。

2、如果希望程序执行一开始就发送POST请求,可以重写Spider类的`start_requests(self)`方法,并且不再调用start_urls里的url。

import scrapy

class PostSpider(scrapy.Spider):
name = 'post'
allowed_domains = ['http://fanyi.youdao.com/']
start_urls = ['http://http://fanyi.youdao.com//'] #如果想要爬虫在一开始的时候就发送post请求,那么就需要在爬虫类中重写start_requests(self)方法,
#并且不再调用start_urls里面的url,如果不重写start_requests(self)那么爬虫会自动获取start_urls里面的url def start_requests(self):
url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
formdata = {
"i": "狗",
"from": "AUTO",
"to": "AUTO",
"smartresult": "dict",
"client": "fanyideskweb",
"salt": "16126984518491",
"sign": "32f75e6c239f04d7c8c61d9e8abeb677",
"ts": "1612698451849",
"bv": "6a1ac4a5cc37a3de2c535a36eda9e149",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTlME"
}
yield scrapy.FormRequest(url=url,formdata=formdata,callback=self.parse) def parse(self, response):
print('*'*20)
print(response.text)
print('*'*20)

scrapy中发送post请求的更多相关文章

  1. Vue中发送ajax请求——axios使用详解

    axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 htt ...

  2. Scrapy中的POST请求发送和递归爬取

    POST请求发送 重写爬虫应用文件中继承Spider类的 类的里面的start_requests(self)这个方法 def start_requests(self): #请求的url post_ur ...

  3. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

  4. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  5. golang中发送http请求的几种常见情况

    整理一下golang中各种http的发送方式 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:clie ...

  6. scrapy框架发送post请求

    注:scrapy框架默认发送get请求 1.想要发送post请求,那么推荐使用‘scrapy.FormRequest’方法.可以方便的制定表单数据.request = scrapy.FormReque ...

  7. rails中发送ajax请求

    最近在写一个blog系统练练手,遇到一个一个问题,用户添加评论的时候想发送ajax请求,但是rails里的ajax和Python中的不太一样,Python中的ajax是用js,jquery实现的和ra ...

  8. IE6—在链接click事件的响应函数中发送jsonp请求不生效

    $("#link").click(function(){     $.ajax({         type: 'GET',         dataType: 'jsonp', ...

  9. java中发送http请求的方法

    package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...

  10. python中发送post请求时,报错“Unrecognized token 'xxxx': was expecting ('true', 'false' or 'null')”

    解决办法: 如请求参数为 data={“user”=“aaa”,“pwd”=“123456”,sign=“00000000000000”} 需要将参数data先做处理,调用函数datas=datajs ...

随机推荐

  1. Median String

    You are given two strings ss and tt, both consisting of exactly kk lowercase Latin letters, ss is le ...

  2. ViT简述【Transformer】

    目录 结构概述 图像切patch Patch0 Position Embedding Multi-Head Attention 代码[Pytorch] Transformer在NLP任务中表现很好,但 ...

  3. Postgresql执行计划浅析与案例

    一.前言 PostgreSQL为每个收到查询产生一个查询计划. 选择正确的计划来匹配查询结构和数据的属性对于好的性能来说绝对是最关键的,因此系统包含了一个复杂的规划器来尝试选择好的计划. 你可以使用E ...

  4. IIS SSL认证流程& url重写

    一.SSL认证 也就是我们常说的服务器认证,为的是启动加密传输协议https,步骤如下: 1.生成证书请求 进入IIS,选择服务器的服务器证书设置选项, 创建证书申请,填值如图所示 选择加密服务提供程 ...

  5. pat乙级 1018 锤子 剪刀 布

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int ...

  6. vue子传父 .indexOf('1')!=-1

    子传父 1.先在父级页面的子组件上加上自定义事件  <SearchSelector @attrinfo="propsinfo" /> 2.在子组件里面写方法传 //点击 ...

  7. javascript中的二进制运算符

    javascript的二进制运算符用于直接对二进制位进行计算,好处是速度快,缺点是不直观. 位运算符只对整数起作用,如果一个运算子不是整数,则会转换成整数后再执行;我们都知道javascript的数值 ...

  8. Windows 下安装 Bun:像 Node 或 Deno 一样的现代 JavaScript 运行时

    背景 最近前端工具链又火了一个项目 Bun,可以说内卷非常严重.Bun 是一个新的 JavaScript 运行时,内置了打包器.转译器.任务运行器和 npm 客户端. Bun 是像 Node 或 De ...

  9. VMware Workstation Pro 16、docker和Mysql相关

    VMware Workstation Pro 16安装参考 docker容器的使用参考 Docker 容器使用 Docker Hub资源 Docker Hub Mysql数据库安装参考 Mysql数据 ...

  10. Echarts 圆形立体柱状图

    先放个效果图 const resData = [ { label: "上海", value: 66 }, { label: "北京", value: 26 }, ...