Форум сайта python.su
0
получил хтмл страницы:
import urllib.request fp = urllib.request.urlopen("https://www.globes.co.il/news/currencycontrols/currencyhistory.asp?Currency=USD&Month=1&Year=2000") mybytes = fp.read() mystr = mybytes.decode("windows-1255") fp.close() print(mystr)
Офлайн
0
пробывал так
from lxml import html tree = html.fromstring(mystr) table = tree.xpath('//table') print(tree.xpath('//table')) for row in table[0]: print(row)
<Element tr at 0x3742e10>
<Element tr at 0x3742d80>
<Element tr at 0x3742e40>
<Element tr at 0x3742e10>
<Element tr at 0x3742d80>
<Element tr at 0x3742e40>
<Element tr at 0x3742e10>
<Element tr at 0x3742d80>
Офлайн
72
Попробуйте так:
from lxml import html tree = html.fromstring(mystr) table = tree.xpath('//table/tr/td') for row in table: if row.text: print(row.text)
Офлайн
0
перегнал в словарь:
tree = html.fromstring(mystr) table = tree.xpath('//table/tr/td') usdList = [] usdDict = {} for row in table: if row.text and row.text != 'שער' and row.text != 'תאריך': #print(row.text) usdList.append(row.text) for i in range(0, len(usdList)-1, 2): usdDict[usdList[i+1]] = usdList[i] print(usdDict)
Офлайн
857
Сначала разделяешь на строки, потом из каждой строки берёшь столбцы
>>> import lxml.html >>> >>> text = """ ... <table> ... <tr><td>a</td><td>b</td></tr> ... <tr><td>c</td><td>d</td></tr> ... <tr><td>e</td><td>f</td></tr> ... </table> ... """ >>> >>> doc = lxml.html.fragment_fromstring(text) >>> >>> out = [i.xpath('td/text()') for i in doc.xpath('//table/tr')] >>> out [['a', 'b'], ['c', 'd'], ['e', 'f']] >>>
Отредактировано py.user.next (Авг. 2, 2019 01:42:11)
Офлайн