gpt4 book ai didi

python - 列表数据消失

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:28 25 4
gpt4 key购买 nike

我不确定它是否有问题,我使用 scrapy 爬取数据并保存它。

我也可以保存我的列表数据。例如 movieDate enter image description here

这是我的方法:

def parse(self, response): 

# i use yield Request to another function prase_page
i = 1000
dataLen = len(response.xpath('//div[@class="release_foto"]'))
photoNodes = response.xpath('//div[@class="release_foto"]')
for photoNode in photoNodes:
contentHref = photoNode.xpath('.//a/@href').extract_first()
yield Request(contentHref, callback=self.parse_page, priority = i, dont_filter=True)
i -= 1
photoHref = photoNode.xpath('.//a/img/@src').extract_first()
moviePhotoArray.append(photoHref)

detailDict.update({
'cnName': cnNameArray,
'enName': enNameArray,
'movieContent': movieContentArray,
'versionType': versionTypeArray,
'movieStyle': movieStyleArray,
'releasedTime': releasedTimeArray,
'moviePhoto': moviePhotoArray,
'movieDate': movieDateArray,
'movieTime': movieTimeArray,
'movieStills': movieStillsArray,
'movieActorCn': movieActorCnArray,
'imdbScore': imdbArray,
'rottenScore': rottenArray,
'videoId': videoIdArray,
'movieActorPhoto': movieActorPhotoArray})
print 'Test enNameArray=>'
print ', '.join(enNameArray)
print 'Test movieDateArray=>'
print ', '.join(movieDateArray)

我发现我无法获取 movieDateArray 值。它打印为空,但当我将它保存到数据库时它具有值(value)。

这是我打印的 movieDateArray 是空的:

Test enNameArray=>
Pacific Rim Uprising, Tomb Raider, Ready Player One
Test movieDateArray=>

我发现我的函数下的全局列表都是空的:

def parse_page(self, response):

global movieContentArray, countLen, dataLen
global movieDateArray, movieTimeArray, movieStillsArray, movieStyleArray, movieActorCnArray, movieActorPhotoArray
movieContent = response.xpath('//div[@class="gray_infobox_inner"]/span/text()').extract_first()
movieDate = response.xpath('//*[@class="movie_intro_info_r"]/span/text()')[0].extract()
movieTime = response.xpath('//*[@class="movie_intro_info_r"]/span/text()')[1].extract()
movieStills = response.xpath('//ul[@class="trailer_list imglist"]//div[@class="foto"]/img/@src').extract()
movieStyle = response.xpath('//div[@class="level_name_box"]//div[@class="level_name"]/a/text()').extract()
movieActorCn = response.xpath('//ul[@class="trailer_list alist starlist"]/li/a//div[@class="fotoinner"]/img/@title').extract()
movieActorPhoto = response.xpath('//ul[@class="trailer_list alist starlist"]/li/a//div[@class="fotoinner"]/img/@src').extract()
movieContentArray.append(movieContent)
movieDateArray.append(movieDate)
movieTimeArray.append(movieTime)
movieStillsArray.append(movieStills)
movieStyleArray.append(movieStyle)
movieActorCnArray.append(movieActorCn)
movieActorPhotoArray.append(movieActorPhoto)
# i can print the value here
print 'Test=>inside movieDateArray=>',movieDateArray

countLen += 1
if countLen == dataLen:
yield tainan

我不知道为什么列表 movieDateArray 是空的。因为我将列表保存到数据库中,它不是空的,但是当我尝试 printfor in 时,它是空的。

太奇怪了。有人可以告诉我我错过了哪一步。提前致谢。

最佳答案

我认为问题在于每次调用 parse_page 时都会定义一个名为 movieDateArray 的新全局变量。也许在最后一次调用期间,此变量被初始化为 None,这就是您不打印任何内容的原因。尝试通过在每次循环迭代中打印 movieDateArray 进行调试

关于python - 列表数据消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49549666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com