RSS Feed 以“\n”开头。我该如何删除它? - Python

RSS Feed has a "\n" at the beginning. How do I remove it? - Python

我正在尝试从此提要中提取数据:

http://realbusiness.co.uk/feed/

但是它看起来与我从中提取的其他提要不同。它们看起来像这样:

https://www.ft.com/companies?format=rss

当我从“https://www.ft.com/companies?format=rss”中提取数据时,一切都非常简单,因为我正在使用 minidom 来分割数据并提取我需要的所有内容,如下所示:

from xml.dom import minidom
from urllib.request import urlopen

url = 'https://www.ft.com/companies?format=rss&page=1'
html = urlopen(url)
dom = minidom.parse(html)
item = dom.getElementsByTagName('item')
for node in item:
    pubdate = node.getElementsByTagName('pubDate')[0].childNodes[0].nodeValue
    link = node.getElementsByTagName('link')[0].childNodes[0].nodeValue
    title = node.getElementsByTagName('title')[0].childNodes[0].nodeValue

但是,当我尝试使用以下代码对“http://realbusiness.co.uk/feed/”执行相同操作时:

from xml.dom import minidom
from urllib.request import urlopen

url = 'http://realbusiness.co.uk/feed/'
html = urlopen(url)
dom = minidom.parse(html)

我收到以下错误:

Traceback (most recent call last):
  File "C:/Users/NAME/Desktop/Scripts/scrapesites/deleteme.py", line 6, in <module>
    dom = minidom.parse(html)
  File "C:\Python36\lib\xml\dom\minidom.py", line 1958, in parse
    return expatbuilder.parse(file)
  File "C:\Python36\lib\xml\dom\expatbuilder.py", line 913, in parse
    result = builder.parseFile(file)
  File "C:\Python36\lib\xml\dom\expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: XML or text declaration not at start of entity: line 2, column 0

关于为什么会发生这种情况,我的结论是,这两个站点的 rss 结构略有不同。 'http://realbusiness.co.uk/feed/' 在页面的第一行有一个 '\n',而 'https://www.ft.com/companies?format=rss' 没有。

如何删除“\n”以便解析数据?

如果我的解决方案有误,那么正确的解决方案是什么?

提前致谢。

它可能通过在解析之前读取 \n 字符来工作,如下所示:

html = urlopen(url)
html.read(1)
dom = minidom.parse(html)