在 Spyder IDE 中使用 Python BeautifulSoup 进行网页抓取

问题描述 投票:0回答:1

我正在尝试从 Spyder IDE 中的以下网址中抓取表格。到目前为止,以下是我的代码。 我检查了 hteml 代码以找出表类和任何 th、tr、td、标签。但提取标题和行数据不起作用。它连接行,因此第一个条目是第 1 行+所有行,第 2 行+所有行。我不知道如何分割行。查看 html 标签没有帮助。我是编程新手,需要所有指导。还需要将其放入 csv 文件中。

url = 'https://www.aoml.noaa.gov/hrd/hurdat/International_Hurricanes.html'

我希望网站上表格中的数据位于 csv 文件中。

```
import os
print(os.getcwd())



import pandas as pd
import requests  
from bs4 import BeautifulSoup  
import csv  



url = 'https://www.aoml.noaa.gov/hrd/hurdat/International_Hurricanes.html'
response = requests.get(url)  
html_content = response.text  
soup = BeautifulSoup(html_content, 'html.parser')  


table = soup.find('table', {'class': 'content'})
data = table.find_all('tr')


headers = []
for header in data[2].find_all('td'): 
header_lines = header.text.strip().split('\r\n')

print(headers)


data = []
for row in rows.find_all('tr')[3:]:`find data after 3rd row`
cols = row.find_all('td')
cols = [col.get_text(strip=True) for col in cols]
if cols:
data.append(cols)

```
python beautifulsoup anaconda spyder
1个回答
0
投票

该文档是用 html5 编写的,您使用的解析器对于 html5 未封闭标签过于严格(

td
未封闭)。使用 html5lib 代替

soup = BeautifulSoup(html_content, 'html5lib')
© www.soinside.com 2019 - 2024. All rights reserved.