0

我正在通过 xpath 从 url 源页面中获取一个值。但这不存在。所以我想传递请求并尝试再次获取该值:我尝试了什么:

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 不存在。所以我想请求该 url 再次获取 xpath。

4

1 回答 1

0

使用尝试除外

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
于 2014-11-24T08:34:44.160 回答