向scrapy中的spider传参,实现增量

有时候需要根据项目的实际需求向spider传递参数来控制spider的运行方式。

比如说,1.根据用户提交的url来控制spider爬取的网站。2.根据需求增量爬取数据。

今天就写一个增量(augmenter)的方式:

1.首先在spider里添加

注:在网上也看了不少的博客,最后发现*args, **kwargs这两个必须加上,要不然会出现bug,不信的话可以试试哦!

如果想减少代码量的话,可以写到类里面去继承!那这样的话,spider里面就不要在写了!!!要不然就不起作用了!!!

2.spider实现方式:

这样就实现了简单的增量!增量的方式有很多,常见的:时间、计数、爬取特定的几页!

注:工作中的遇到的一些问题,可能我的方法不一定是最好的,大家一起相互交流+扣扣781816703

原文地址:http://blog.51cto.com/12925223/2117818

时间: 2024-10-06 06:14:27

向scrapy中的spider传参,实现增量的相关文章

scrapy入门(二)请求传参和中间件

scrapy的请求传参 作用 : 实现深度爬取 使用场景 : 爬取的数据没有在同一张页面 例如, 爬取电影首页全部电影的详情页信息 #请求传参: 让Request将一个数据值(字典)传递给回调函数 #在第一页中将item对象的第一个属性赋值,然后通过请求传参将item对象传过去 #手动发送get请求: model_index = [3,4,6,7,8] for index in model_list: li =li_list[index] model_url = li.xpath('xxxxxx

C#中ref引用传参怎么用

protected void Page_Load(object sender, EventArgs e) { int value = 0;//初始值 Test(ref value); Response.Write(value.ToString());//值被改变,结果是9999 Response.End(); } protected void Test(ref int value) { value = 999; }C#中ref引用传参怎么用

关于SQL Server 2017中使用json传参时解析遇到的多层解析问题

原文:关于SQL Server 2017中使用json传参时解析遇到的多层解析问题 开发新的系统,DB部分使用了SQL Server从2016版开始自带的Json解析方式. 用了快半年,在个人项目,以及公司部分项目上使用了,暂时还没遇到大的问题,和性能问题. 今天在解析Json的多级参数遇到了点小问题,在此记录一下: 传参内容如下: 1 declare @json varchar(max)=N'{"Customer":36,"Positions":[{"I

jq中的ajax传参

    一.   jq中的Ajax传参有两种           1.通过url地址来传参    2.通过data来传递参数 1. url来传递参数 function GetQuery(id) { if (id ==1||id==7) { var name = "语文"; $.ajax({ url:"../ajaxHandler/ChartsHandler.ashx?id="+id+"&name="+name +"",

【Scrapy框架之请求传参案例】 -- 2019-08-08 20:40:13

原文: http://106.13.73.98/__/141/ 在某些情况下,我们爬取的数据不在同一个页面. 例如下面的案例1,我们要爬取一个电影网站,电影的排名.名称.主演分在一页,而其它的信息分在二级子页面中.这时,我们就需要用到请求传参. 案例1:爬取97电影网中所有热门电影的详细信息 97电影网热门电影URL:http://www.55xia.com/movie/hotest/ 第一步,爬虫文件: # -*- coding: utf-8 -*- import scrapy from Te

vue请求中 post get传参方式是不同的哦

我在学习vue,项目中post请求,get请求都用到了,我发现传参方式是不一样的. post请求的例子: checkin (){ this.$http.post('my url',{ mobilePhone:this.phone, password:this.password },{ emulateJSON: true } ).then(function(res){ this.$root.userid=res.data.userid; console.log(this.$root.userid)

python中给函数传参是传值还是传引用

首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传递. 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本.值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值. 引用传递(pass-

wx.request中POST方法传参问题,用到JSON.stringify()

前面用到了get方法传参,现在post也需要传参传输内容进去,下面我来一步步研究: 遇到的问题: 传参进去后反馈参数为空,没有报错.错误代码如下: wx.request({ url: '某地址', method: "post", data: { msg: { "phone": "某电话", "content": this.data.text, "date":this.data.time } }, heade

关于js 中函数的传参

var a = 100; function test(a){ a++; //a(形参)是局部变量 console.log(a); } test(a); console.log(a); //结果是 101 100; 函数的参数是属于函数内部变量,外部无法访问到,即使与外部变量同名;它们也是两个不同的变量 类似于:var a = 100; function test( ){ var a=100;   //a是局部变量 a++; console.log(a); } test( ); console.l