<p>与之交互的页面在很大程度上依赖javascript来呈现其内容。您要查找的数据不会出现在使用<code>requests</code>得到的响应中,因为它不会计算javascript。你知道吗</p>
<p>要实现这一点,您将需要使用像seleniumwebdriver这样的东西。下面是一个使用它的解决方案和一个Chrome的无头实例。除了安装<code>selenium</code>模块外,您还需要下载<a href="http://chromedriver.chromium.org/downloads" rel="nofollow noreferrer">ChromeDriver</a>并更改以下代码以将其指向提取到的位置:</p>
<pre><code>from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument(" headless")
driver = webdriver.Chrome(
options=options, executable_path=r"C:\chromedriver\chromedriver.exe"
)
try:
driver.get("https://www.eredmenyek.com/foci/nemetorszag/bundesliga/")
soup = BeautifulSoup(driver.page_source, "html.parser")
for row in soup.select(".stats-table-container tr"):
print("\t".join([e.text for e in row.select("td")]))
finally:
driver.quit()
</code></pre>
<p>结果:</p>
<pre>
1. Borussia Dortmund 20 15 4 1 51:20 49
2. Mönchengladbach 20 13 3 4 41:18 42
3. Bayern München 20 13 3 4 44:23 42
4. RB Leipzig 20 11 4 5 38:18 37
5. Frankfurt 20 9 5 6 40:27 32
...
</pre>