scrapy中的临时变量

时间:2013-08-29 06:02:38

标签: python scrapy

这是我的item.py

class SampleItem(Item):
    title = Field()
    link = Field()
    link = Field()
    code = Field()

并且据说我想在test.py中找到一些像

这样的临时变量
   loc_Con = hxs.select('/tr/td[2]/span/span/span') #for country
   loc_Reg = hxs.select('/tr/td[2]/span/span') #for region
   loc_Loc = hxs.select('//tr[3]/td[2]/span/span') #for local
   items = []
   for titles in titles:
   item = somethingItem()
   temp[1] = loc_Con.select('text()').extract()
   temp[2] = loc_Reg.select('text()').extract()
   temp[3] = loc_Loc.select('text()').extract()
   temp[1] = temp[1][0] if temp1 else ""
   temp[2] = temp[2][0] if temp2 else ""
   temp[3] = temp[3][0] if temp3 else ""
   item["code"] = "{temp[1]}-{temp[2]}-{temp[3]}".format(temp[1], 
                                                         temp[2],
                                                         temp[3])

我该怎么办才能在items.py

中添加temp [1] = Field

1 个答案:

答案 0 :(得分:0)

您可以在循环中定义任何临时变量,以计算item["code"]所需的字符串值。然后,item["code"]将通过.format()保留一个新的字符串值,与临时变量无关。

loc_Con = hxs.select('/tr/td[2]/span/span/span') #for country
loc_Reg = hxs.select('/tr/td[2]/span/span') #for region
loc_Loc = hxs.select('//tr[3]/td[2]/span/span') #for local
items = []
for titles in titles:
   item = somethingItem()
   temp1 = loc_Con.select('text()').extract()
   temp2 = loc_Reg.select('text()').extract()
   temp3 = loc_Loc.select('text()').extract()
   temp1 = temp1[0] if temp1 else ""
   temp2 = temp2[0] if temp2 else ""
   temp3 = temp3[0] if temp3 else ""
   item["code"] = "{0}-{1}-{2}".format(temp1, 
                                       temp2,
                                       temp3)

因此无需添加任何特殊的temp[1] = Field()