使用BS4解析XML格式的URL参数

时间:2013-06-09 22:07:54

标签: xml url beautifulsoup

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

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

e.g。

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

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

对此有何修复?谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

你不能只是把一个&amp;进入一个属性并期望它起作用。