美丽的汤表没有出现
问题描述:
我正在练习网络报废,我决定检查我使用最多的网站,Flash Score,并很快遇到了一些麻烦。美丽的汤表没有出现
我的代码如下:
from bs4 import BeautifulSoup
import urllib2
soup = BeautifulSoup(urllib2.urlopen('http://www.flashscore.com/').read())
print soup.find("div", id = "fscon")
然而,这将返回:
相反的我时,我已经看到了,其中包括了所有的主表中的网页的HTML见信息。
答
这个特定的页面并不是最简单的情况下启动网页抓取,因为它是相当“动态”,它涉及额外的请求和JavaScript执行加载页面完全。
*的选项是使用真实的浏览器加载页面,等待完整的加载并解析HTML。工作示例使用selenium
:
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()
奖励积分,如果你能使用的要求去做;) –
@PadraicCunningham我知道你已经准备了答案和使用要求所有这19个小时的问题被张贴后的代码: )虽然有趣的情况!谢谢。 – alecxe
大声笑,设想它,直到我打开开发人员工具,并看看请求,然后匆忙关闭开发人员工具:) –