关于网页表格爬取的问题,如何解决?

想把网页上边的表格爬下来并转换成dataframe或者存成csv,以便进一步处理,但是自己代码尝试了一下,爬完以后总是格式不太对。

尝试过:

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 获取网页内容
url = 'https://library.ust.hk/blog/2022/12/13/library-hours-20-dec-2022-2-feb-2023/'
response = requests.get(url)
html = response.content

# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(html, 'html.parser')

# 找到包含表格的元素
table = soup.find('table')

# 将表格转换为 DataFrame
df = pd.read_html(str(table), header=0)[0]

# 删除无关列和行
df = df.iloc[2:8, 1:4].reset_index(drop=True)

# 删除包含 NaN 值的行
df.dropna(inplace=True)

# 重置 DataFrame 的行索引
df.reset_index(drop=True, inplace=True)

# 打印结果
df

以及:

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 获取网页内容
url = 'https://library.ust.hk/blog/2022/12/13/library-hours-20-dec-2022-2-feb-2023/'
response = requests.get(url)
html = response.text

# 使用 Beautiful Soup 解析 HTML
soup = BeautifulSoup(html, 'html.parser')

# 找到包含表格的元素
table = soup.find('table')

# 将表格转换为 DataFrame
df = pd.read_html(str(table))[0]

# 打印结果
df

以及:

import requests
from bs4 import BeautifulSoup

# 获取网页内容
url = 'https://library.ust.hk/blog/2022/12/13/library-hours-20-dec-2022-2-feb-2023/'
response = requests.get(url)
html = response.text

# 使用 Beautiful Soup 解析 HTML
soup = BeautifulSoup(html, 'html.parser')

# 找到包含文本内容的元素
content = soup.find('div', {'class': 'entry-content'})

# 获取文本内容
text = content.get_text()

# 打印结果
print(text)

格式都不太对,怎么解决?

PANDAS爬取的表格,只返回内容。若是表格存在合并单元格的情况,数据错位是正常的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^