如何每10分钟从Web将数据写入CSV文件

时间:2018-01-12 12:25:27

标签: python schedule

您好我对Python和Web抓取一般都很陌生,但我试图从网站获取数据值,将其写入CSV文件。这对我来说也很好。我的问题是我希望脚本像每小时一样获取值并将其存储在CSV文件中。所以我在调度命令上做错了,因为获取值并将其写入CSV文件效果很好,但只有当我按下运行时。这是我试过的代码。

import urllib2
from bs4 import BeautifulSoup
import csv
from datetime import datetime
import os
import schedule
import time


def job():

url = 'https://coinmarketcap.com/currencies/bitcoin-cash/'

page = urllib2.urlopen(url)

soup = BeautifulSoup(page, 'html.parser')

name_box = soup.find('span', attrs={'class': 'text-large2'})

bch_value = float(name_box.text.strip())

os.chdir('C:\Users\NIK\.spyder2\PythonScripts')

with open('BCH_kurs', 'a') as csv_file:
writer = csv.writer(csv_file)
writer.writerow([bch_value, datetime.now()])

schedule.every(1).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)

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

2 个答案:

答案 0 :(得分:0)

我建议你探索scrapy框架。 这是simple example

您可以保存为您想要的任何格式,并自动以固定间隔运行抓取。

答案 1 :(得分:0)

日程安排是

  

定期作业的进程内调度程序(   https://pypi.python.org/pypi/schedule

所以计划在一个过程中运行。要开始此过程,您必须使用运行并在该计划运行中启动该过程......