什麼是從網頁提取物品信息的最佳安全方式? 我的意思是,有時候頁面中可能缺少一件物品,最終你會破壞抓取工具。Scrapy安全地提取物品
看看這個例子:
for cotacao in tabela_cotacoes:
citem = CotacaoItem()
citem['name'] = cotacao.select("td[4]/text()").extract()[0]
citem['symbol'] = cotacao.select("td/a/b/text()").extract()[0]
citem['current'] = cotacao.select("td[6]/text()").extract()[0]
citem['last_neg'] = cotacao.select("td[7]/text()").extract()[0]
citem['oscillation'] = cotacao.select("td[8]/text()").extract()[0]
citem['openning'] = cotacao.select("td[9]/text()").extract()[0]
citem['close'] = cotacao.select("td[10]/text()").extract()[0]
citem['maximum'] = cotacao.select("td[11]/text()").extract()[0]
citem['minimun'] = cotacao.select("td[12]/text()").extract()[0]
citem['volume'] = cotacao.select("td[13]/text()").extract()[0]
如果某些項目在頁面丟失,.extract()將返回[]和調用[0]他們將拋出一個異常(超出範圍)。
所以問題是,處理這個問題的最佳方式是什麼?
單獨的問題,但我會做一個並行列表,而不是鍵入(或複製)所有功能10次。 'Fields = ['name','current','last_neg'...]; Nums = [4,6,7 ...]'它們通過MyField循環,myNum以zip(Fields,Nums):citem [MyField] = cotacao ... [MyNum] ...'然後你可以做到這一點只有一個循環... – beroe