首页 > 解决方案 > 当我尝试从表中抓取数据时没有数据出现

问题描述

我试图从网站上的数据表中刮取数据,但是当我运行我的代码时,输​​出只是空白。我不确定为什么什么都没有打印出来。对于 IDE 终端来说,内容是否太大?还是我的代码存在根本问题?

注:网站链接为:https ://www.kaggle.com/nareshbhat/health-care-data-set-on-heart-attack-possibility

我试图抓取的数据是底部的表格(heart.csv)

任何帮助是极大的赞赏!

代码:

import time

import pandas as pd

from selenium import webdriver

from bs4 import BeautifulSoup

import re

 
DRIVER_PATH = r"/Users/mouradsal/Downloads/DataSets Python/chromedriver"

URL = "https://www.kaggle.com/nareshbhat/health-care-data-set-on-heart-attack-possibility"


browser = webdriver.Chrome(DRIVER_PATH)

browser.get(URL)

time.sleep(4)

content = browser.find_elements_by_css_selector(".dfXZEj div")


for e in content:

        start = e.get_attribute("innerHTML")

        soup= BeautifulSoup(start, features=("lxml"))
        
        print(soup.get_text())
        
   

谢谢

标签: pythonseleniumbeautifulsoupscreen-scraping

解决方案


我已经使用 Java 代码解决了上述问题,它对我来说工作得很好。

附加Java代码以获取更多信息,根据我对Python的理解,您可以直接使用

start = e.text

Java 代码

    WebDriverManager.chromedriver().setup();
    WebDriver driver = new ChromeDriver();
    
    driver.get("https://www.kaggle.com/nareshbhat/health-care-data-set-on-heart-attack-possibility");
    
    List<WebElement> list = driver.findElements(By.cssSelector(".dfXZEj div"));
    
    System.out.println(list.size());
    
    for(WebElement element : list) {
        System.out.println(element.getText());
    }
    
    driver.quit();

推荐阅读