gpt4 book ai didi

python - 如何每天抓取一次数据并将其写入 csv

转载 作者:行者123 更新时间:2023-12-05 06:06:32 26 4
gpt4 key购买 nike

我是一个完全的菜鸟,我只是开始将网络抓取作为一种爱好。

我想从 https://www.fly4free.pl/forum/ 中抓取论坛数据(帖子总数、主题总数和所有用户数)

photo of which data I want to scrape

看了一些 turotirals 我已经找到了这段代码:

from bs4 import BeautifulSoup
import requests
import datetime
import csv

source = requests.get('https://www.fly4free.pl/forum/').text
soup = BeautifulSoup(source, 'lxml')

csv_file = open('4fly_forum.csv', 'w')
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Data i godzina', 'Wszytskich postów', 'Wszytskich tematów', 'Wszytskich użytkowników'])

czas = datetime.datetime.now()
czas = czas.strftime("%Y-%m-%d %H:%M:%S")
print(czas)

dane = soup.find('p', class_='genmed')

posty = dane.find_all('strong')[0].text
print(posty)

tematy = dane.find_all('strong')[1].text
print(tematy)

user = dane.find_all('strong')[2].text
print(user)

print()

csv_writer.writerow([czas, posty, tematy, user])
csv_file.close()

我不知道如何让它每天运行一次以及如何每天向文件添加数据一次。抱歉,如果我的问题对你们专业人士来说太幼稚了 ;),这是我的第一个培训任务。

我的结果 csv 文件看起来也不太好,我希望数据能很好地格式化为列

任何帮助和见解将不胜感激。提前谢谢德维丘

最佳答案

您可以使用 Python 中的 Schedule 库来执行此操作。首先安装它使用

pip install schedule

然后您可以修改代码以按您选择的时间间隔运行

import schedule
import time

def scrape():
# your web scraping code here
print('web scraping')

schedule.every().day.at("10:30").do(scrape) # change 10:30 to time of your choice

while True:
schedule.run_pending()
time.sleep(1)

这将在每天 10:30 运行网络抓取脚本,您可以轻松地免费托管它以使其持续运行。

以下是如何以格式良好的方式将结果保存到 csv,并将文件名(czas、tematy、posty 和 user)作为列名。

import csv
from os import path

# this will avoid appending the headers (fieldnames or column names) everytime the script runs. Headers will be written to csv only once
file_status = path.isfile('filename.csv')

with open('filename.csv', 'a+', newline='') as csvfile:
fieldnames = ['czas', 'posty', 'tematy', 'user']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

if not file_status:
writer.writeheader()
writer.writerow({'czas': czas, 'posty': posty, 'tematy': tematy, 'user': user})


关于python - 如何每天抓取一次数据并将其写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65725369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com