requests.get()行为异常?

2024-06-03 01:54:07 发布

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

我一直在用python编写XML解析器,我把新闻网站的RSS提要作为输入。我实现了一个loadRSS()函数,在该函数中,我对特定提要的url使用requests.get()。我的代码

def loadRSS(src,filename):

resp = requests.get(src)

#print resp.content
with open(filename, 'wb') as f:
    f.write(resp.content)

现在我有不同的子目录,根据新闻的不同部分,每个子目录都有各自的RSS提要url,所以有一些文件夹,如sports,science等,每个文件夹都有一个source.txt文件,其中有RSS提要的相应url。我使用os.walk()遍历每个文件

    for root, sub, f in os.walk(rootdirectory):
    for f1 in f:
        if f1=='source.txt':
            src=""
            with open(os.path.join(root,f1),'r') as f2:
                src=f2.readline()

            loadRSS(src,os.path.join(root,"topnewsfeed.xml"))
            newsitems = parseXML(os.path.join(root,"topnewsfeed.xml"))
            savetoCSV(newsitems,os.path.join(root,"topnews.csv"))

当我运行我的脚本时,我出错了

xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 22, column 311

所以我决定检查loadRSS()函数形成的xml文件。令我惊讶的是,不同的RSS提要获取了不同类型的数据(尽管我使用相同的逻辑将数据放在xml文件中)。例如,对于“印度斯坦时报”的topnews/rssfeed.xml对应的RSS提要(抱歉,由于我没有足够的声誉,无法发布所有链接),xml文件的格式完全符合页面源。但是对于另一个RSS链接http://timesofindia.indiatimes.com/rssfeeds/1081479906.cms我得到了一个不稳定的xml file on my system

与RSS页面的xml不一致。我真的很努力地调试它,但仍然没有线索,可能是什么原因,它可以被纠正,这是一个伟大的原因激怒。任何帮助都将不胜感激。谢谢


Tags: 文件path函数srcurlosrootxml
1条回答
网友
1楼 · 发布于 2024-06-03 01:54:07

不稳定的XML文件显然是一个HTML文件,它永远不应该是有效的XML。询问网站的维护人员,为什么您在这里接收到与预期的XML不同的内容……这超出了SO的范围,XML解析器的行为是正确的

相关问题 更多 >