我正在抓取网站数据以获取电话号码。该数字每隔一秒钟就会动态变化,但是在检查时会显示该数字。我只需要捕获该数字,但包含该数字的div包装器就不会返回任何值。我想念什么? (请放心,因为我是Python和数据抓取的新手。)
我有一些代码可以正常工作,并返回应该包含我想要的数据的html片段,但没有乐趣,div
包装器没有返回值。
import requests
from bs4 import BeautifulSoup
r = requests.get('https://deuda-publica-espana.com')
deuda = BeautifulSoup(r.text, 'html.parser')
deuda = deuda.findAll('div', {'id': 'contador_PDEH'})
print(deuda)
我没有收到任何错误,我只是得到[<div class="contador_xl contador_verde" id="contador_PDEH"></div>]
,没有任何价值!
答案 0 :(得分:1)
实际上,硒很容易。我怀疑有一个js脚本正在运行一个提供数字的计数器,这就是为什么您无法在您的方法中找到它的原因(如评论中所述)
from selenium import webdriver
d = webdriver.Chrome(r'C:\Users\User\Documents\chromedriver.exe')
d.get('https://deuda-publica-espana.com/')
print(d.find_element_by_id('contador_PDEH').text)
d.quit()