不使用硒如何刮除隐藏的元素?

时间:2020-01-19 17:45:54

标签: python html beautifulsoup

我正在尝试创建一个网络抓取工具,以收集有关Science Fair项目的数据。我正在为卡尔加里创建一张空气质量图。我正在从CRAZ website获取数据,当我在Chrome中检查代码时,它显示了我想要的数据。

我的代码在图片下方:

from bs4 import BeautifulSoup as Bsp
import requests as r

page_ce = r.get('https://craz.ca/monitoring/calgary-central/')
soup = content = Bsp(page_ce.content, 'html.parser')
ce_d = soup.find(id='mainTable')


print(ce_d)

1 个答案:

答案 0 :(得分:0)

您可以在不打开窗口的情况下使用硒。 Selenium执行javascript,因此您可以抓取。

为此,请添加“ --headless”选项。如果您的服务器是Windows,则还要添加“ --disable-gpu”。如果您的服务器是linux,请添加“ --no-sandbox”。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# chrome_options.add_argument("--disable-gpu") # windows only
# chrome_options.add_argument("--no-sandbox) # linux only
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)

driver.get("https://craz.ca/monitoring/calgary-central/")

然后可以用硒刮擦。