gpt4 book ai didi

python - 漂亮的汤 table 没有出现

转载 作者:太空宇宙 更新时间:2023-11-04 03:13:18 25 4
gpt4 key购买 nike

我正在练习网络抓取,我决定查看我最常使用的网站,Flash Score很快就遇到了一些麻烦。

我的代码如下:

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。使用 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()

关于python - 漂亮的汤 table 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37234227/

25 4 0