【发布时间】:2017-11-02 05:22:00
【问题描述】:
通过一些搜索,我发现我试图抓取的内容位于 iframe 内部。这是我总是收到 None 作为我的结果的主要原因。我能够开始提取一些数据,例如标题,但是当涉及到表中的数据时,我只能得到第一个结果,即数字 1。这是代码:
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get('http://www.nhl.com/stats/player?aggregate=1&reportType=game&dateFrom=2017-10-20&dateTo=2017-10-31&filter=gamesPlayed,gte,1&sort=shots')
html = driver.page_source
driver.quit()
soup = BeautifulSoup(html,"html.parser")
stat_cat = soup.find('div',attrs={'class':'rt-tr'})
header = stat_cat.text.strip()
stats = soup.find('div',attrs={'class':'rt-td'})
player_stats = stats.text.strip()
print(header,player_stats)
我想弄清楚的是如何从第二个 soup.find 中获取 Player 和他的统计数据,但它只返回第一个 rt-td 结果。一旦我有了所有的数据,我不仅想打印它,还想把它保存到 csv 中。感谢您的观看!
【问题讨论】:
标签: python iframe web-scraping