Python BeautifulSoup在循环期间返回NoneType

时间:2013-07-05 04:02:22

标签: python xml parsing beautifulsoup

大家好,所以我对我的档案进行了一些编辑,并遇到了问题。 Python代码从文本文档的行中获取页面ID,并将id粘贴到url模板中以解析生成的XML。但是,代码为除最后一行之外的每一行返回NoneTypes。因此,它打印页面ID(在for循环之前),但没有打印for循环中的信息。有什么想法吗?

from bs4 import BeautifulSoup
import urllib

    with open("list.txt") as f:
        for line in f:
            link = "http://somewebsite.com/application?number="+line+"&tab=main&xml=ab14"
            print "Page ID: "+line
            xml_string= urllib.urlopen(link)
            result = soup.find('someXML-tag')
            if result is not None:
                status = result['status']
                print "\nApplication Status: "+status+"\n"
            else:
                print "it was nonetype"

每个XML文档的格式:

    <?xml version="1.0" encoding="UTF-8"?>
    <first-XMLtag>
       <someXML-tag id="100001" status="OPEN">
       </someXML-tag>
    </first-XMLtag>

我的输出:

PageID: 100000
it was nonetype

PageID: 100001
it was nonetype

PageID: 100002
Application Status: Open

文本文件有一行。

1 个答案:

答案 0 :(得分:0)

啊,这不是关于汤或什么的。它是line

当您浏览文件时,每行最后会有一个\n(一个新行)。这被放在网站上,因此汤什么都没有。

这样做:

link = "http://somewebsite.com/application?number="+line.rstrip('\n')+"&tab=main&xml=ab14"

这将从行的右侧剥离新行