在线阅读XML内容的困难与Python,XML.Etree.Elementtree和Urllib

发布于 2025-01-23 16:59:51 字数 963 浏览 2 评论 0原文

我正在使用Python,XML.Etree.ElementTree和Urllib在RSS提要中在线阅读XML。 我的代码似乎很简单,但没有给我我想要的结果 无论我做什么,它总是返回XML流中的所有数据,

我为如何将特定字符串读取到列表中的更好建议,

请参见下面的代码

import xml.etree.ElementTree as ET
from urllib import request

title_list = []  


def main():
    try:
        response = request.urlopen("https://www.abcdefghijkl.xml")
        rsp_code = response.code
        print(rsp_code)
        if rsp_code == 200:
            webdata = response.read()
            print("1")
            xml = webdata.decode('UTF-8')
            print("2")
            tree = ET.parse(xml)
            print("3")
            items = tree.findall('channel')
            print("4")
            for item in items:
                title = item.find('title').text
                title_list.append(title)

            print(f"title_list 0 is, {title_list}")
            print("5")

    except Exception as e:
        print(f'An error occurred  {str(e)}')


main()

I am reading XML online in an RSS feed using python, xml.etree.ElementTree and urllib.
My code seems to be straightforward but is not giving me the results that I want
No matter what I do it always returns what looks like all the data in the XML stream

I am open to better suggestions on how to read specific strings into lists

see my code below

import xml.etree.ElementTree as ET
from urllib import request

title_list = []  


def main():
    try:
        response = request.urlopen("https://www.abcdefghijkl.xml")
        rsp_code = response.code
        print(rsp_code)
        if rsp_code == 200:
            webdata = response.read()
            print("1")
            xml = webdata.decode('UTF-8')
            print("2")
            tree = ET.parse(xml)
            print("3")
            items = tree.findall('channel')
            print("4")
            for item in items:
                title = item.find('title').text
                title_list.append(title)

            print(f"title_list 0 is, {title_list}")
            print("5")

    except Exception as e:
        print(f'An error occurred  {str(e)}')


main()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伏妖词 2025-01-30 16:59:51

谢谢,大家,我在一个很棒的udemy视频之后弄清楚了。我最终使用了BS4图书馆(美丽的汤)Python图书馆和请求。这是以下代码

import bs4
import requests

title_list = []


def main():
    try:
        result = requests.get("https://abcdefghijk.xml")
        res_text = result.text
        soup = bs4.BeautifulSoup(res_text, features="xml")
        title_tag_list = soup.select('title')
        for titles in title_tag_list:
            title = titles.text
            title_list.append(title)
     
        print(f"title_list 0 is, {title_list}")
        print("5")

    except Exception as e:
        print(f'An error occurred  {str(e)}')


main()

Thanks, everyone, I figured it out after an awesome Udemy video. I eventually used the bs4 library(beautiful soup)python library and requests. Heres the code below

import bs4
import requests

title_list = []


def main():
    try:
        result = requests.get("https://abcdefghijk.xml")
        res_text = result.text
        soup = bs4.BeautifulSoup(res_text, features="xml")
        title_tag_list = soup.select('title')
        for titles in title_tag_list:
            title = titles.text
            title_list.append(title)
     
        print(f"title_list 0 is, {title_list}")
        print("5")

    except Exception as e:
        print(f'An error occurred  {str(e)}')


main()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文