项目名称为ITcast
当执行爬虫的yield item时 就会调用图二中的管道文件(不过需要在setting.py中配置,ITEM_PIPELINES这一行中配置,在这个字典中所包含的管道才可以被调用,同理可以在里面加上自定义管道,比如数据库管道什么的,并且后面的数字是优先级,0-1000之间,值越小优先级越高)每个item都会执行这些管道
图二中:
第一个函数:初始化
第二个函数:因为返回的内容存在中文,所以将item返回的数据进行转换,然后写入文件,再返回item告诉引擎已经处理完毕
第三个函数:在关闭的时候关闭文件
一般在新建目录里去执行
这是爬虫主要内容,解释都已经已备注形式写上去了,还有一点是下面输出的name[0]是因为xpath对象是一个列表,用[0]才可以,还有就是xpath("./h3/test()")之前的那个点是指从当前节点,不加的话会变成根节点
但这是并没有用到item字段,那么怎么去交互呢
item部分
然后可以scrapy crawl itcast -o itcast.json 输出成为json文件,不过都是unicode字符串,到时候扔到网站解码即可
当然不仅仅是.json格式,还可以输出.csv .jsonl .xml等四种文件格式
这里的item因为是列表,但返回给引擎时引擎无法识别,所以只能用-o来处理
有时输出文件并不是我们所需要的,如果我们想存入数据库应该怎么办,那么就需要管道了
在start_urls里面可以加更多的网址,这些网址用多线程执行,
爬虫启动的时候,找到start_urls里面的内容,提取url,封装成请求,交给引擎,引擎交给调度器入队列,去重处理之后再交给下载器下载,下载器返回的响应文件交给parse方法处理,在parse方法里根据xpath返回的节点,迭代每个节点,我们将每个xpath对象extract后,放到我们定义好的item字段里,再把item字段放到列表里