处理时出现刮擦键错误

2024-10-06 10:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到我的问题的任何答案,所以我希望可以在这里问。在

我试图取消电影放映,但仍有以下错误。在

enter image description here

真正让我困惑的是,问题显然出在管道上。然而,我有第二个蜘蛛歌剧院代码完全相同(只是地方不同),它工作得很好。“显示”和“地方”指的是我的Django模型。我已经将他们的字段改为CharFields,所以日期/时间格式不存在问题。在

我还尝试使用专用的scrapy item“KikaItem”而不是“ShowItem”(它与我的opera spider共享),但错误仍然存在。在

class ScrapyKika(object):
    def process_item(self, ShowItem, spider):
        place, created = Place.objects.get_or_create(name="kino kika")

        show = Shows.objects.update_or_create(
            time=ShowItem["time"],
            date=ShowItem["date"],
            place=place,
            defaults={'title': ShowItem["title"]}
        )

        return ShowItem

这是我的蜘蛛代码。我想问题出在这里,因为我在这里使用了与opera中不同的方法。但是,我不知道会出什么问题。在

^{pr2}$

项目加载器

class KikaItemLoader(ItemLoader):
    title_in = MapCompose(strip_string,lowercase)
    title_out = Join()

    time_in = MapCompose(strip_string)
    time_out = Join()

    date_in = MapCompose(strip_string)
    date_out = Join()

感谢您的宝贵时间,并对任何拼写错误深表歉意:)


Tags: 代码indatestringtimetitle地方错误
1条回答
网友
1楼 · 发布于 2024-10-06 10:25:40

目前,你的蜘蛛产生一个物品:

{'title': u'  '}

它没有填充datetime字段。这是因为在spider中初始化ItemLoader类的方式。在

您应该在初始化项目加载器时记住一个特定的选择器。替换:

^{pr2}$

有:

for div in divs:
    l = KikaItemLoader(item=ShowItem(), selector=div)

相关问题 更多 >