Html解析与漂亮的汤返回空列表

2024-09-30 06:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我现在不知道这个网站的代码。在其他情况下,它可以正常工作。在

    url = "http://www.i-apteka.pl/search.php?node=443&counter=all"
    content = requests.get(url).text
    soup = BeautifulSoup(content)

    links = soup.find_all("a", class_="n63009_prod_link")
    print links

在本例中,它打印“[]”,但显然有一些链接。 有什么想法吗?:)


Tags: 代码nodehttpurlsearch网站www情况
2条回答

无论使用哪个解析器,您都发现了一个bug。在

我不知道你在用哪个解析器,但我知道:

python2.7.2(来自Apple)、bs4.1.3(来自pip)、libxml2.9.0(来自自制程序)、lxml3.1.0(来自pip)的错误与您完全相同。除了libxml2.7.8(来自苹果)之外,我尝试的其他所有内容都与上面相同。并且lxml是默认值(至少在4.1.3中是这样),如果您不指定任何其他内容,BS将首先尝试。我在libxml2.9.0中看到了其他意外的错误(其中大部分已经在trunk上修复,但是还没有2.9.1发布)。在

所以,若这是您的问题,您可能需要降级到2.8.0和/或从树的顶部构建它。在

但如果不是这样的话……它绝对适用于我的2.7.2和stdlibhtml.parser,在chat中,你用2.7.1测试了同样的想法。虽然html.parser(尤其是在2.7.3之前)是缓慢而脆弱的,但它似乎对您来说已经足够好了。因此,最简单的解决方案是:

soup = BeautifulSoup(content, 'html.parser')

…而不是让它选择自己喜欢的解析器。在

有关详细信息,请参见Specifying the parser to use(以及上面和下面的部分)。在

我也遇到了同样的问题,在本地,漂亮的汤在我的ubuntu服务器上总是返回一个空列表。 我已经尝试过很多解析器来跟踪链接[1],并尝试了很多依赖关系

最后,对我有用的是:

  • 拆除漂亮的肥皂安装
  • 删除它的所有依赖项(由apt get install python-bs4指定)
  • 使用下面的命令再次安装它

命令:

sudo apt-get install python-bs4

pip install beautifulsoup4

我使用了以下代码:

^{pr2}$

[http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser][1]

相关问题 更多 >

    热门问题