这通常是因为抓取的数据格式与Pandas数据框的列数或行数不匹配所致。可以在使用BeautifulSoup进行抓取之前,先通过Pandas创建一个空数据框,并确保其列名及顺序与抓取的数据一致。然后将抓取的数据以列表形式传递给数据框即可。
以下是一个示例代码:
import pandas as pd from bs4 import BeautifulSoup import requests
df = pd.DataFrame(columns=['title', 'description'])
url = 'https://example.com' page = requests.get(url) soup = BeautifulSoup(page.content, 'html.parser') titles = soup.find_all('h1') descriptions = soup.find_all('p')
for i in range(len(titles)): df.loc[i] = [titles[i].get_text(), descriptions[i].get_text()]
print(df)