程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

scrapy学习笔记(杂1)

发布于2020-03-17 12:49     阅读(1196)     评论(0)     点赞(2)     收藏(1)


Scrapy 流程:

模块功能:

 

 

 

 

处理大型爬虫中来自不同的网站的数据:

  1. 首先定义不同的爬虫Spider1,spider2,spider3…不同爬虫中具有自身属性

class TestSpider(scrapy.Spider):

    name = 'test'

    allowed_domains = ['test.com']

    start_urls = ['http://test.com/']

  1. 在pipeline中函数process_item(self, item, spider):传入的参数spider
  2. 通过spider参数确定不同爬虫数据的不同处理方式:

Ex :一个pipeline 判定并分开处理,或者多个pipeline处理不同的数据:

class MyspiderPipeline(object):

def process_item(self, item, spider):

              if spider.name == ‘spider1’:

                     #todo

        return item

 

class MyspiderPipeline(object):

def process_item(self, item, spider):

              if spider.name == ‘spider1’:

                     #todo

        return item

class MyspiderPipeline2(object):

def process_item(self, item, spider):

              if spider.name == ‘spider2’:

                     #todo

        return item

****需在setting中添加并设置pipeline等级,等级相当于距离值

 

 

 

 

 

Ex:可使用open_spider和close_spider 计算爬虫运行时间

 

公共变量,通用设置

Return 到另一个距离较远的pipeline

 

 

 

 

 

、使用Files Pipeline
一般会按照下面的步骤来使用文件管道:
1)在配置文件settings.py中启用FilesPipeline。

ITEM_PIPELINES = {

    'tutorial.pipelines.files.FilesPipeline': 1, 

}

2)在配置文件settings.py中使用FILES_STORE指定文件存储路径。

# 文件存储路径

FILES_STORE = '/Users/huangtao/Downloads/files' 

3)实现ExampleItem(可选),在items.py定义file_urls和files两个字段。

class ExampleItem(Item):

    file_urls = Field()

    files = Field()

4)实现ExamplesSpider,设置起始爬取点。
parse方法将提取文件的下载URL并返回,一般情况下是把这些URL赋值给ExampleItem的file_urls。

# 获取360的图片信息

class SoSpider(scrapy.Spider):

    name = "so"

    allowed_domains = ["image.so.com"]

 

    def __init__(self, *args, **kwargs):

        super(SoSpider, self).__init__(*args, **kwargs)

        self.start_urls = ['http://image.so.com/z?ch=go']

 

    # 这里的parse方法将提取文件的下载URL并返回,一般情况下是把这些URL赋值给ExampleItem的file_urls。

    def parse(self, response):

        。。。

yield ExampleItem(file_urls = url])   **注: 下载非文本文件时 url应该是列表的形式!!!  否则会报错 ValueError: Missing scheme in request url: h

 

 



所属网站分类: 技术文章 > 博客

作者:老铁哪来的

链接:https://www.pythonheidong.com/blog/article/262953/c86eddda838d9ae4921d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)





继续浏览请对下暗号

兄弟,是python小王子阿亮的人吗?对一下暗号:天王盖地虎
你接:  
获取暗号请用微信扫描二维码或者搜索公众号:python小王子阿亮,关注后回复暗号