Python Scrapy-代码审查和有关项目、装载机和管道的问题

Python Scrapy-代码审查和有关项目、装载机和管道的问题,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我想刮一个网站(50+)都是一个类似的性质,但会有稍微不同的信息在每个数量。最终,这将进入一个数据库,但我还想导出到csv 所以我想做的是,在每个网站上设置一个模板——基本上,设置所有可能的字段来搜索。但是,每个字段并不适用于每个网站。因此,在这些情况下,我希望数据以与“完美站点”(包含所有字段的站点!)相同的格式进行刮取,对于不适用的站点,只保留空格 以下是我的档案: Items.py import scrapy class ProjectItem(scrapy.Item): nam

我想刮一个网站(50+)都是一个类似的性质,但会有稍微不同的信息在每个数量。最终,这将进入一个数据库,但我还想导出到csv

所以我想做的是,在每个网站上设置一个模板——基本上,设置所有可能的字段来搜索。但是,每个字段并不适用于每个网站。因此,在这些情况下,我希望数据以与“完美站点”(包含所有字段的站点!)相同的格式进行刮取,对于不适用的站点,只保留空格

以下是我的档案:

Items.py

import scrapy

class ProjectItem(scrapy.Item):
    name = scrapy.Field()
    address1 = scrapy.Field()
    address2 = scrapy.Field()
    address3 = scrapy.Field()
    city = scrapy.Field() 
    random1 = scrapy.Field()
    random2 = scrapy.Field()
    random3 = scrapy.Field()
Spider.py

from scrapy.spiders import Spider
from Projct.items import ProjectItem
from scrapy.http import request

class MySpider(Spider):
    name            = "ENTER NAME"
    allowed_domains = ["ENTER ALLOWED DOMAINS"]
    start_urls      = ["ENTER START URL"]

    def parse(self, response):

        ''' Selectors '''
        name = response.xpath('ENTER XPATH').extract()
        address1 = response.xpath('').extract()
        address2 = response.xpath('').extract()
        address3 = response.xpath('').extract()
        city = response.xpath('').extract()
        random1 = response.xpath('').extract()
        random2 = response.xpath('').extract()
        random3 = response.xpath('').extract()

        ''' Items '''
        html = response.xpath('ENTER ALL HTML XPATH').extract()
        for html in htmls:
            item = ProjectItem()
            item["name"] = name
            item["address1"] = address1
            item["address2"] = address2
            item["address3"] = address3
            item["city"] = city
            item["random1"] = random1
            item["random2"] = random2
            item["random3"] = random3
            yield item
目前我有三个主要问题:

  • 这是设置蜘蛛的正确/有效方法吗
  • 如何处理空白值?即,如果任何值不在 网站我刮,我怎么能有没有没有它的地方持有人 它的价值是什么
  • 如何实现加载程序和管道?我已经阅读了文档,但不确定将其放在我的代码中的什么位置
    希望这是有道理的,任何其他关于这一点的一般性评论都将不胜感激

    对于代码审查,@Maverick您最终找到了答案吗?你能总结一下你的经验吗?对于代码审查,@Maverick,你最终找到答案了吗?你能谈谈你的经历吗?