【问题标题】:No data appearing when I attempt to scrape data from a table当我尝试从表中抓取数据时没有数据出现
【发布时间】:2021-06-29 19:35:26
【问题描述】:

我正在尝试从网站上的数据表中抓取数据,但是当我运行我的代码时,输​​出只是空白。我不确定为什么什么都没有打印出来。对于 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())
        
   

谢谢

【问题讨论】:

  • 需要先登录吗?
  • 尝试只使用 print(e.text) 。在循环中。

标签: python selenium beautifulsoup screen-scraping


【解决方案1】:

我已经使用 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();

【讨论】:

  • 有什么方法可以用 Python 代码重写它?
【解决方案2】:
for e in content:
   print(e.text)

你不需要使用beautifulsoup

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    相关资源
    最近更新 更多