【发布时间】:2018-08-28 02:18:41
【问题描述】:
我正在尝试从https://markets.wsj.com/ 中抓取“主要股票指数表”,并希望将其保存到我桌面上的文件夹中。这是我目前所拥有的:
import urllib.request
import json
import re
html = urllib.request.urlopen("https://markets.wsj.com/").read().decode('utf8')
json_data = re.findall(r'pws_bootstrap:(.*?)\s+,\s+country\:', html, re.S)
data = json.loads(json_data[0])
filename = "C:\Users\me\folder\sample.csv"
f = open(filename, "w")
for numbers in data['chart']:
for obs in numbers['Major Stock Indexes']:
f.write(str(obs['firstCol']) + "," + str(obs['dataCol']) + "," + str(obs['dataCol priceUp']) + str(obs['dataCol lastb priceUp']) + "\n")
print(obs.keys())
我收到错误:IndexError: list index out of range
有什么想法可以解决我的问题吗?
【问题讨论】:
-
你能添加整个堆栈跟踪并在代码中添加一些打印吗?
-
我发现你的
json_data是一个空列表[],你应该使用像bs4这样的抓取工具
标签: python python-3.x