0
Python 3要求とlxmlを使用してテーブル内の行のhref値を取得する
テーブルの行を繰り返し処理するのは難しいです。
tr[1]
コンポーネントを、teamName、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