Python 3Использование запросов и LXML, получить HREF значения для строк в таблице
Я с трудом Перебор строк таблицы.
Как перечислить компонент tr[1]
через количество строк в теле таблицы для командыName, teamState, teamLink xpaths?
import lxml.html
from lxml.etree import XPath
url = "http://www.maxpreps.com/rankings/basketball-winter-15-16/7/national.htm"
rows_xpath = XPath('//*[@id="rankings"]/tbody)
teamName_xpath = XPath('//*[@id="rankings"]/tbody/tr[1]/th/a/text()')
teamState_xpath = XPath('//*[@id="rankings"]/tbody/tr[1]/td[2]/text()')
teamLink_xpath = XPath('//*[@id="rankings"]/tbody/tr[1]/th/a/@href')
html = lxml.html.parse(url)
for row in rows_xpath(html):
teamName = teamName_xpath(row)
teamState = teamState_xpath(row)
teamLink = teamLink_xpath(row)
print (teamName, teamLink)
Я также попытался это с помощью следующих действий:
from lxml import html
import requests
siteItem = ['http://www.maxpreps.com/rankings/basketball-winter-15-16/7/national.htm'
]
def linkScrape():
page = requests.get(target)
tree = html.fromstring(page.content)
#Get team link
for link in tree.xpath('//*[@id="rankings"]/tbody/tr[1]/th/a/@href'):
print (link)
#Get team name
for name in tree.xpath('//*[@id="rankings"]/tbody/tr[1]/th/a/text()'):
print (name)
#Get team state
for state in tree.xpath('//*[@id="rankings"]/tbody/tr[1]/td[2]/text()'):
print (state)
for target in siteItem:
linkScrape()
Спасибо за будущее: D
Не очень способный, как помочь вам, просто сбросив намек, что если вам нужно проанализировать XML/HTML, BeatfiulSoup может быть лучшим вариантом для вас, чем чистый lxml. Если вы не вынуждены использовать lxml, проверьте эту библиотеку. –
Я не понимаю, что вы пытаетесь сделать. Можете ли вы рассказать о том, как код в ваших примерах не отвечает вашим потребностям? В частности, я не уверен, что вы подразумеваете под «итерацией tr [1] компонента» ... – larsks