python-scrapy(2)

项目名称为ITcast

《python-scrapy(2)》
《python-scrapy(2)》

《python-scrapy(2)》

   当执行爬虫的yield item时 就会调用图二中的管道文件(不过需要在setting.py中配置,ITEM_PIPELINES这一行中配置,在这个字典中所包含的管道才可以被调用,同理可以在里面加上自定义管道,比如数据库管道什么的,并且后面的数字是优先级,0-1000之间,值越小优先级越高)每个item都会执行这些管道

图二中:

第一个函数:初始化

第二个函数:因为返回的内容存在中文,所以将item返回的数据进行转换,然后写入文件,再返回item告诉引擎已经处理完毕

第三个函数:在关闭的时候关闭文件

一般在新建目录里去执行

《python-scrapy(2)》

这是爬虫主要内容,解释都已经已备注形式写上去了,还有一点是下面输出的name[0]是因为xpath对象是一个列表,用[0]才可以,还有就是xpath(“./h3/test()”)之前的那个点是指从当前节点,不加的话会变成根节点

但这是并没有用到item字段,那么怎么去交互呢

item部分

《python-scrapy(2)》 定义item部分是定义item字典的键,有了键才会有下图加入的值

《python-scrapy(2)》

然后可以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字段放到列表里

    原文作者:AlexMercer313
    原文地址: https://www.jianshu.com/p/08c7bca000fd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞