Python 漂亮的汤桌不是';t出现

Python 漂亮的汤桌不是';t出现,python,beautifulsoup,Python,Beautifulsoup,我当时正在练习网络抓取,我决定检查一下我使用最多的网站,很快就遇到了一些麻烦 我的代码如下: from bs4 import BeautifulSoup import urllib2 soup = BeautifulSoup(urllib2.urlopen('http://www.flashscore.com/').read()) print soup.find("div", id = "fscon") 然而,这返回: <div id="

我当时正在练习网络抓取,我决定检查一下我使用最多的网站,很快就遇到了一些麻烦

我的代码如下:

from bs4 import BeautifulSoup
import urllib2

soup = BeautifulSoup(urllib2.urlopen('http://www.flashscore.com/').read())
print soup.find("div", id = "fscon")
然而,这返回:

<div id="fscon">
<div class="preload pvisit" id="preload"><span>Loading ...</span></div>
</div>

加载。。。

当我看到包含所有信息的主表的网页时,我看到的不是HTML中的内容。

这个特定的网页不是最容易启动网页抓取的情况,因为它非常“动态”,它涉及额外的请求和javascript执行以完全加载页面

最高级的选择是使用真正的浏览器加载页面,等待完全加载并解析HTML。工作示例使用:


@PadraicCunningham我知道在问题发布19个小时后,你一直在准备答案和使用请求的代码:)不过这个案例很有趣!Thank.lol,我一直在考虑这个问题,直到我打开开发人员工具并查看了请求,然后匆忙关闭了开发人员工具:)@PadraicCunningham lol,在这里完全一样-我怀疑他们故意混淆/丑化XHR的响应以解决web爬虫问题..当然可以理解..@alecxe谢谢,让我花点时间深入了解一下,确保在我将其标记为正确之前我理解了所有内容
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Firefox()
driver.maximize_window()

wait = WebDriverWait(driver, 10)

url = 'http://www.flashscore.com/'
driver.get(url)

# wait for the complete page load
wait.until(EC.invisibility_of_element_located((By.ID, "preload")))

# parse the HTML
soup = BeautifulSoup(driver.page_source, "html.parser")
print(soup.find("div", id = "fscon"))

driver.close()