我正在尝试使用python的beautifulsoup库进行自我开发,我意识到自己必须获得帮助。
import requests
from bs4 import BeautifulSoup
url = "https://www.basketball-reference.com/players/j/jamesle01.html"
r = requests.get(url)
soup = BeautifulSoup(r.content,"html.parser")
data = soup.find_all("table",{"class":"row_summable sortable stats_table now_sortable"})
print(data)
答案 0 :(得分:1)
您下载的html与网页上显示的html不完全相同。在加载网页的某个时刻,javascript将now_sortable
类添加到浏览器中的表中。
当您使用请求下载页面时,将永远不会执行这部分javascript,因此表中没有now_sortable
类,这就是为什么找不到元素的原因。
尝试将您的代码更改为:
data = soup.find_all("table",{"class":"row_summable sortable stats_table"})
一个一般性提示:使用请求下载文件时,请尝试将您请求的页面保存在本地,以便对它进行适当的浏览:
with open('local_page.html', 'w', encoding='utf-8') as fout:
fout.write(r.text)
答案 1 :(得分:0)
您可以只使用Selenium呈现页面,然后拉出html:
from selenium import webdriver
from bs4 import BeautifulSoup
url = "https://www.basketball-reference.com/players/j/jamesle01.html"
driver = webdriver.Chrome()
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html,"html.parser")
data = soup.find_all("table",{"class":"row_summable sortable stats_table now_sortable"})
print(data)