代码完成无错误但打印功能不起作用

时间:2018-11-05 21:23:23

标签: python printing beautifulsoup pickle

我正在尝试学习python,而且我一直在关注youtube上的教程。到目前为止,一切都很好,但是到了一个地步,如果我运行代码,它可以毫无错误地完成,但是它不会打印出我想要的内容。我完全抄袭了教程中的内容,但找不到区别。只是困惑为什么它可以完成代码但不能完成代码。任何帮助都会很棒,我觉得这可能是我忽略的简单解决方法。

干杯

import bs4 as bs
import pickle
import requests

def save_sp500_tickers():
    resp = requests.get('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
    soup = bs.BeautifulSoup(resp.text, "lxml")
    table = soup.find('table',{'class': 'wikitable sortable'})
    tickers = []
    for row in table.findALL('tr')[1:]:
        ticker = row.findALL('td')[0].text
        tickers.append(ticker)

    with open("sp500tickers.pickle","wb") as f:
        pickle.dump(tickers, f)

    print(tickers)

    return tickers

    save_sp500_tickers()

2 个答案:

答案 0 :(得分:0)

save_sp500_tickers()调用错误地缩进,因此它是函数定义的一部分,将不会执行。

答案 1 :(得分:0)

谢谢大家。删除save_sp500_tickers()的缩进有效。 我也必须摆脱

for row in table.findALL('tr')[1:]:
    ticker = row.findALL('td')[0].text

并将其变成

for row in table.find_all('tr')[1:]:
    ticker = row.find_all('td')[0].text

原来BeautifulSoup在较新的版本中对其进行了更改。