为什么beautifulsoup返回一个空列表(但在解释器中运行时却没有?)

时间:2017-08-21 18:56:25

标签: python python-2.7 beautifulsoup empty-list

我正在编写一个简单的程序来从旅游网站上删除航班数据。

当我在python解释器中测试它时,它工作正常。但是,当我将其作为.py文件运行时,它将返回一个空列表。

我知道程序能够从网站上获取数据,因为我可以打印整个源码没问题。但是,由于某种原因,find_all方法返回一个空列表。

应该工作的部分:

    import urllib2
    from bs4 import BeautifulSoup

    raw_page_data = urllib2.urlopen(query_url)
    soup = BeautifulSoup(raw_page_data, 'html.parser')
    raw_prices = soup.find_all(class_='price-whole')

    for item in raw_prices:
        for character in item:
            if character.isdigit() == True:
                print character

通常,在解释器中,这将返回价格列表。我根本无法打印raw_prices,因为它是空的。我认为错误是使用find_all方法,因为输出是[]。

我被告知,或许,网站上的JavaScript没有加载我想要找到的元素。但是,由于整个页面源已加载并且可打印,因此这没有任何意义。如果我尝试print soup, 它打印整个源(包含我想要找到的元素)。

我也试过不同的解析器,检查是否有错误。

任何帮助都非常感谢欢呼!

0 个答案:

没有答案