想把网页上边的表格爬下来并转换成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爬取的表格,只返回内容。若是表格存在合并单元格的情况,数据错位是正常的。
不知道你这个问题是否已经解决, 如果还没有解决的话:#写入代码
df.columns
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
dtype='object')