使用BeautifulSoup和Selenium进行Web爬网Jquery表

时间:2020-03-24 15:51:20

标签: python selenium beautifulsoup

我正试图从该站点的表中获取数据,该站点每天都会更新该表 http://mananciais.sabesp.com.br/HistoricoSistemas?SistemaId=0

我正在学习BeautifulSoup和Selenium,并尝试使用这些软件包访问数据。

但是,网站的源代码未显示表中的数据。据我了解,该网站是使用jQuery Grid构建的。

尽管尝试了几件事,直到现在我还是只这样做。

import os
import time
from selenium import webdriver

# Escolhe o driver
driver = webdriver.Firefox()

# Acessa o site
site = 'http://mananciais.sabesp.com.br/HistoricoSistemas'
driver.get(site)

soup = BeautifulSoup(driver.page_source, 'html.parser')

print(soup.prettify())

如何访问此数据? 我想对此进行分析

1 个答案:

答案 0 :(得分:1)

数据由Java脚本呈现。您需要等待页面正确加载后才能获取page_source。

得出WebDriverWait()并等待visibility_of_element_located()

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# Escolhe o driver

driver = webdriver.Firefox()
# Acessa o site
site = 'http://mananciais.sabesp.com.br/HistoricoSistemas'
driver.get(site)
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"contenttabledivjqxGrid")))
soup = BeautifulSoup(driver.page_source, 'html.parser')
print(soup.prettify()) 

希望这会有所帮助。