0

无法在网上找到答案,所以这是我的第一个 stackoverflow 问题:)

使用BeautifulSoup4,当我选择“xml”作为解析器时,我发现很难在 URL 中保留参数。任何解决方法?

例如

from bs4 import BeautifulSoup as BS
url = u'<li href="www.example.com/index.php?sky=blue&river=wide"> Hello World </li>'
BS(url, 'xml')

我得到以下输出:

<?xml version="1.0" encoding="utf-8"?>
<li href="www.example.com/index.php?sky=blue=wide"> Hello World </li>

请注意,?river解析的输出中缺少该内容。

仅供参考,使用bs4BeautifulStoneSoup(url)给出相同的不良输出,因为它只是带有“xml”解析器的 BeautifulSoup。但是,这不是BeautifulSoup3中的BeautifulStoneSoup的问题。但我必须在我的项目中使用 bs4。

有什么解决办法吗?谢谢!

4

1 回答 1

1

那不是 XML。要成为 XML,它必须是:

<li href="www.example.com/index.php?sky=blue&amp;river=wide">

您不能只是将 & 放入属性中并期望它起作用。

于 2013-06-09T22:16:55.430 回答