python - 如何使用熊猫将这个多页抓取保存到只有一个标题且没有索引的 csv 中
问题描述
我得到的输出是一个没有标题的 csv,这就是我的问题如果我删除 header=False oi 将其设置为 header=True,我会为每个页面得到一个标题。
所以请如果有人可以帮助我使用熊猫解决这个问题。
import pandas as pd
import requests
from bs4 import BeautifulSoup
pages = [0, 10 ,20, 30]
for page in pages:
source = requests.get('https://guru.pucp.edu.pe/questions?start={}'.format(page))
soup = BeautifulSoup(source.content, 'html.parser')
quest_list = soup.find('div', class_='qa-q-list')
q_items = quest_list.find_all('div', class_='qa-q-item-main-meta-stats')
q_description = [item.find('a').get_text() for item in q_items]
q_when = [item.find('span', {'class' : 'qa-q-item-when-data'}).get_text() for item in q_items]
q_user = [item.find('span', {'class' : 'qa-q-item-who-data'}).get_text() for item in q_items]
q_points = [item.find('span', {'class' : 'qa-q-item-who-points-data'}).get_text() for item in q_items]
q_category = [item.find('span', {'class' : 'qa-q-item-where-data'}).get_text() for item in q_items]
question_data = pd.DataFrame(
{
'question_description' : q_description,
'when_created' : q_when,
'user_name' : q_user,
'question_points' : q_points,
'question_category' : q_category,
})
print(question_data)
question_data.to_csv('question_data.csv', mode='a', header=False, index=False)
谢谢!!
解决方案
将带有标题的第一页保存为原样。对于所有后续页面,将标题设置为 False。
if page == 0:
question_data.to_csv('question_data.csv', index=False)
else:
question_data.to_csv('question_data.csv', mode='a', header=False, index=False)
推荐阅读
- flutter - 如何更新flutter web上的内容?
- visual-studio-code - 摆脱 vs 代码中烦人的矩形高光
- reporting-services - SSRS 多值参数计数表达式
- bash - 通过标志名称和值验证 bash 脚本参数
- mysql - MYSQL - 如何合并这 2 个表以获得特定的表输出
- c - 如何使用 fgets 从文本文件打印到二维数组?
- angular - 如何从 Angular 11 降级到 Angular 9?
- python - 使用 Python 的斐波那契数列
- java - StepsDefinition 之外的自动装配在 Cucumber 测试中为空
- function - 为什么 BLAS SAXPY 更新输入/输出向量 Y?