您好我对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)
答案 0 :(得分:0)
我建议你探索scrapy
框架。
这是simple example
您可以保存为您想要的任何格式,并自动以固定间隔运行抓取。
答案 1 :(得分:0)
日程安排是
定期作业的进程内调度程序( https://pypi.python.org/pypi/schedule)
所以计划在一个过程中运行。要开始此过程,您必须使用运行并在该计划运行中启动该过程......