我正在尝试使用RSS提要中的xml文件集合来解析目录。 对于另一个工作正常的目录,我也有类似的代码,因此无法解决问题。我想退回这些物品,以便可以将它们写入CSV文件。我收到的错误是:
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0
这是我从以下位置收集RSS提要的网站:https://www.ba.no/service/rss
它在以下情况下运行良好:https://www.nrk.no/toppsaker.rss和https://www.vg.no/rss/feed/?limit=10&format=rss&categories=&keywords=
这是此RSS的功能:
import os
import xml.etree.ElementTree as ET
import csv
def baitem():
basepath = "../data_copy/bergens_avisen"
table = []
for fname in os.listdir(basepath):
if fname != "last_feed.xml":
files = ET.parse(os.path.join(basepath, fname))
root = files.getroot()
items = root.find("channel").findall("item")
#print(items)
for item in items:
date = item.find("pubDate").text
title = item.find("title").text
description = item.find("description").text
link = item.find("link").text
table.append((date, title, description, link))
return table
我用print(items)
测试过,它返回了所有对象。
可以这样写XML文件吗?
答案 0 :(得分:1)
问了一个朋友,说要尝试“除外”测试。找到一个.DS_Store文件,该文件仅适用于Mac计算机。我正在为将来可能遇到相同问题的人们提供解决方案。
def baitem():
basepath = "../data_copy/bergens_avisen"
table = []
for fname in os.listdir(basepath):
try:
if fname != "last_feed.xml" and fname != ".DS_Store":
files = ET.parse(os.path.join(basepath, fname))
root = files.getroot()
items = root.find("channel").findall("item")
for item in items:
date = item.find("pubDate").text
title = item.find("title").text
description = item.find("description").text
link = item.find("link").text
table.append((date, title, description, link))
except Exception as e:
print(fname, e)
return table