2014-11-24 41 views
0

我正在通過xpath從url源頁面獲取值。但這並不存在。所以我想的請求,並嘗試再次搶值:我的嘗試:python xpath IndexError:列表索引超出範圍

import requests 
from lxml import html 
url='http://www.example.com' 
cont=requests.get(url) 
tree=html.fromstring(cont) 
out=tree.xpath('...')[0] 

當我運行它,我有以下錯誤:

IndexError: list index out of range 

我怎樣才能請求在這種情況下再次獲得價值?

更新

我知道這個錯誤意味着xpath不存在。所以我想請求該網址再次抓取xpath。

+1

大概XPath不存在。 – Maroun 2014-11-24 08:12:05

+0

我知道..是的xpath不存在..所以我想再次請求url,如果它不存在 – MLSC 2014-11-24 08:17:16

+0

@MortezaLSC嘗試除了? – 2014-11-24 08:22:56

回答

0

使用try除了

import requests 
from lxml import html 

def do_get(xpath): # OR URL What ever you need 
    url='http://www.example.com' 
    cont=requests.get(url) 
    tree=html.fromstring(cont) 
    out=tree.xpath(xpath)[0] 

try: 
    do_get('....') 
except: 
    do_get('....') 

或者,如果你想做到這一點永遠,直到你得到正確的:

def do_get(xpath): 
    url='http://www.example.com' 
    cont=requests.get(url) 
    tree=html.fromstring(cont) 
    out=tree.xpath(xpath)[0] 

while True: 
    try: 
     do_get('....') 
     break 
    except: 
     pass 
相關問題