scrapy实现post请求与请求传参
不推荐使用scrapy框架发送post请求,配置复杂,如果在数据量大 的情况下,可以通过如下代码来实现:
import scrapyclass FySpider(scrapy.Spider):name = 'fy'# allowed_domains = ['www.baidu.com']start_urls = ['https://fanyi.baidu.com/sug']def start_requests(self):data={'kw':"beautiful"}for url in self.start_urls:yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse)def parse(self, response):print(response.text)
方法一:就是重写scrapy下面的start_requests方法
方法二:将URL链接写在外部,然后手动去发送请求 scrapy.FormRequest(url=url,formdata=data,callback=self.parse)
请求传参的实现:
# -*- coding: utf-8 -*- import scrapy from video.items import VideoItemclass MvSpider(scrapy.Spider):name = 'mv'# allowed_domains = ['www.piaohua.com/']start_urls = ['http://www.88ys.cc/dianying/1.html']def detail_parse(self,response):item=response.meta['item']year=response.xpath('//div[@class="ct-c"]/dl/dd[3]/text()').extract_first()country = response.xpath('//div[@class="ct-c"]/dl/dd[2]/text()').extract_first()type_list=response.xpath('//div[@class="ct-c"]/dl/dt//a/text()').extract()type=" ".join(type_list) #电影类型 多标签 列表转字符串actor = response.xpath('//div[@class="ct-c"]/dl/dt[3]/text()').extract_first()about=response.xpath('//div[@class="ee"]/text()').extract_first()item['year']=yearitem['country'] =countryitem['type'] =typeitem['actor'] =actoritem['about'] =aboutyield itemdef parse(self, response):li_list=response.xpath('//div[@class="index-area clearfix"]/ul/li/a')item=VideoItem()for li in li_list:m_url='http://www.88ys.cc'+li.xpath('./@href').extract_first()name=li.xpath('./@title').extract_first()item['name']=nameyield scrapy.Request(url=m_url,callback=self.detail_parse,meta={'item':item})
item文件代码:
import scrapyclass VideoItem(scrapy.Item):# define the fields for your item here like:name = scrapy.Field()year = scrapy.Field()country = scrapy.Field()type = scrapy.Field()actor = scrapy.Field()about = scrapy.Field()
转载于:https://www.cnblogs.com/wen-kang/p/10960169.html
scrapy实现post请求与请求传参相关推荐
- python excel token_python+excel接口自动化获取token并作为请求参数进行传参操作
1.登录接口登录后返回对应token封装: import json import requests from util.operation_json import OperationJson from ...
- 前端get,post、pul、deletec请求方式相关传参总结
前端(axios封装)get,post.pul.deletec请求方式相关传参总结 1.get方式 数据全查 export function getList(data,url) {return req ...
- http请求方式及传参方式
http请求方式及传参方式 本文简单介绍一下http的几种请求方式以及集中传参方式的不同. 常见的几种请求方式 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法. HTTP ...
- vue的post请求data可以传两个参吗_我知道的HTTP请求
HTTP大家都不陌生,但是HTTP的许多细节就并不是很多人都知道了,本文将讨论一些容易被忽略但又比较重要的点. 首先,怎么用原生JS写一个GET请求呢?如下代码,只需3行: let xhr = new ...
- SpringMVC第二讲——传参、修改端口、请求转发、重定向、跨服务器文件上传
传参 在地址栏?代表开始传参,用&来分隔变量 /*** 请求参数-简单传参* @param name* @param age* @return*/@RequestMapping("t ...
- 【Postman】测试 Post 请求时传递数据失败 常见传参方式
近期尝试使用 nod.js + vue 开发一个小项目. 第一次使用 postman 测试,遇到 POST 请求数据发送不过去的问题,做一个记录. JS 部分代码 //用户注册接口 router.po ...
- Vue路由传参params 与 query
一.路由传参分为 params 传参与 query 传参 1. params params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显示在地址栏中(但是不能刷新).par ...
- axios 跨域传参_在Vue中如何使用axios跨域访问数据
vue.js学习之 跨域请求***与axios传参 一:跨域请求*** 1:打开config/index.jsmodule.exports{ dev: { } } 在这里面找到proxyTable{} ...
- IE URL传参问题
IE URL传参问题 在一次ie兼容测试时发现,在chrome正常访问的接口 在 ie 中抛出 400 异常 排查后发现 chrome 在请求接口 query 传参时会自动将中文字符转换成 URLco ...
最新文章
- 路由器虚拟服务器功能(广域网服务端口和局域网服务端口的映射关系)
- Ubuntu创建opencv工程并显示一张图片
- Spring transaction事务之roll back回滚: rollback-for
- Android学习笔记(十一):Activity-ListView
- worktools-源码下拉问题
- 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
- 指针和引用的区别和联系
- Jakarta Struts应用的七个经验
- IdTCP的C++Builder2010示例(转)
- 引入dubbo项目接口_dubbo接口调用过程中,部分字段值丢失
- 手机型号大全_2000-2500元智能手机最全导购推荐(学生党手机必看)-2020年12月更新...
- 解决sese9 安装时多个屏幕
- 移动安全-java JEB安装使用
- java图片转换pdf_Java将图片转化为PDF的方法(1)
- java se 知识点(一)
- android按钮添加音效,Android中为按钮设置点击音效
- excel+if函数+android,Excel中if函数多重条件的使用
- 星际2 正在连接服务器,星际征霸游戏连接服务器失败怎么办 解决方案分享
- Maven引包问题.lastUpdated
- Python3 使用PIL/Pillow库将图片转换为txt文字云