def is_digit(n):
try:
int(n)
return True
except ValueError:
return False
Почему
Как обойти это ?
is_adv_digit = lambda x: x.isdigit() if x[:1]!='-' else x[1:].isdigit()
>>> is_adv_digit('erwer')
False
>>> is_adv_digit('erwe5345r')
False
>>> is_adv_digit('345345')
True
>>> is_adv_digit('-345345')
True
>>> is_adv_digit('-')
False
>>> is_adv_digit('-1')
True
>>> is_adv_digit('1-')
False
#requests - для скачки странички
import requests
#html из lxml - чтобы парсить DOM дерево
from lxml import html
#забираем страничку с нефтью
raw = requests.get("https://yandex.ru/news/quotes/1006.html")
#строим из нее html дерево
dom = html.fromstring(raw.content)
#забираем xpath-ом ноды с датами и ценами из дерева
dates = dom.xpath('//td[@class="quote__date"]')
prices = dom.xpath('//td[@class="quote__value"]')
#выводим на экран
for d,p in zip(dates, prices):
print(d.text_content(), p.text_content())