如何修复Webscraping IndexError

时间:2019-01-14 00:32:12

标签: python

我正在尝试将IFPI 2014数据的数据保存到一个csv文件中。但是我一直收到此索引错误。


回溯(最近通话最近):   在第15行的文件“ C:\ Users \ Brian \ eclipse-workspace \ FTS \ src \ FirstModule.py”     tbody = soup('table',{“ class”:“ wikitable plainrowheaders sortable jquery-tablesorter”})[0] .find_all('tr') IndexError:列表索引超出范围


我注意到csv文件已创建,但csv文件中没有数据。我不明白为什么它会给我这个错误信息,因为据我所知索引是正确的。

import csv
import urllib.request
from bs4 import BeautifulSoup

f = open('dataoutput.csv', 'w', newline = '')
writer = csv.writer(f)
soup = BeautifulSoup(urllib.request.urlopen("https://en.wikipedia.org/wiki/Global_music_industry_market_share_data").read(), 'lxml')

tbody = soup('table', {"class":"wikitable plainrowheaders sortable 
jquery-tablesorter"})[0].find_all('tr')
for row in tbody:
    cols = row.findChildren(recursive=False)
    cols = [ele.text.script() for ele in cols]
    writer.writerow(cols)
    print(cols)

有人可以向我指出我要去哪里了吗

1 个答案:

答案 0 :(得分:0)

由于您是通过REST请求获取页面的,因此未添加任何CSS或JS属性。 以下代码段正在为我返回数据:

tbody = soup('table', {"class":"wikitable plainrowheaders sortable"})[0].find_all('tr')