【发布时间】:2019-03-27 05:07:07
【问题描述】:
我是网络抓取的新手,需要一些帮助。我想使用 Xpath 抓取 NBA 的首发阵容、球队和球员的位置。我只从名字开始,因为我遇到了问题。
到目前为止,这是我的代码:
from urllib.request import urlopen
from lxml.html import fromstring
url = "https://www.lineups.com/nba/lineups"
content = str(urlopen(url).read())
comment = content.replace("-->","").replace("<!--","")
tree = fromstring(comment)
for nba, bball_row in enumerate(tree.xpath('//tr[contains(@class,"t-content")]')):
names = bball_row.xpath('.//span[@_ngcontent-c5="long-player-name"]/text()')[0]
print(names)
看起来程序运行没有错误,但名称没有打印出来。任何有关如何更有效地使用 Xpath 解析的提示将不胜感激。我试着弄乱 Xpath 助手和 Xpath Finder。也许那里有一些技巧可以使过程更容易。提前感谢您的时间和精力!
【问题讨论】:
-
您要抓取的数据正在通过 Javascript 注入。你不能以你正在做的方式刮它。试试看 Selenium。
-
谢谢@aris!我会研究 Selenium,如果我弄明白了,我会更新我的代码。
标签: python xpath web-scraping lxml