在解释pipelines之前,我先举个例子来了解攀登数据的具体过程。
请求检索数据(从网站检索数据)数据清洗)数据处理)存储)数据存储)现在我介绍pipelines。 pipelines可以负责步骤3和步骤4的工作,专业术语是管道。 可以通过定义一个或多个class来处理接收到的数据。
代码目录:
爬行动物代码Mingyan _ spider.py:importscrapydefgeturl (: return ' https://search.51job.com/list/030200,00000, 0000 lang=cstype=post channel=0000 work year=99 cotype=99 degree from=99 job term=99 companysize=99 provide salary=99 lon 类型=dibi aoid=0address=line=special area=00 from=welfare=' classitte 3360 name=' args spider ' def start _ requ requests L, 提取self.parse ) # response (: Mingyan=response.CSS (div # result list.El ) )首页上的所有名言,然后在Mingyan for v中输入Mingyan变量循环获取标签T1=v.CSS('.T1a:3360text ' ).extract_first ) (T2=v.CSS ) '.extract_first(# 提取名言T3=v.CSS('.t:3360text ).extract_first ) ) T4=v.CSS ).t43360:Text ) ' ' T1=str(T2 ) ' t4': t4,} yield item配置文件setting.py: (管道必须配置才能启用。数字越小,管道的优先级越高,优先调用数字为0至0~1000.)
#SpiderjobPipeline2先item _ pipelines={ ' spiderjob.pipelines.spiderjobpipeline ' :400,' spider job.pipelines .
管道文件pipelines.py: #存储classspiderjobpipeline(object ) : #可选实现、参数初始化等的def __init__(self ) ) item ) item对象) -爬行的item#spider # ) spider对象) -此item的名为spider #的defprocess_item(self,item, spider ) : fileName='aa.txt' #定义文件名ifstr ) item [ ' t1 ' ]=' none ' 3360 retur re withopen (文件名称,' a ',encone str['T4'](# # f.write(item ) f.write ) ( n ) )为换行# f.write ) (标签: ' tags (f.write ) ) () ) ) ) n ' ) f.close(returnitem ),首先将titleclassppppitem转换为数据spider ) :return(T1(: )岗位: ) item )、(T2 ) : )公司: ) item )、(T3 ) : )地区: )。