我在这个基本问题上遇到了一段时间的麻烦,不确定是什么问题。
运行以下代码时收到的错误是:

AttributeError: 'list' object has no attribute 'find'


这是代码:

import xml.etree.ElementTree as ET
import requests

r = requests.get('http://www.11alive.com/rss/local/3/10.xml')

root = ET.fromstring(r.text.encode('utf-8'))

channel = root.find('channel')

items = channel.findall('item')

news = []
for i in range(3):
    news.append(items.find('title').text)
    news.append(items.find('link').text)

print news

最佳答案

您只需对items列表进行切片:

for item in items[:3]:
    news.append((item.find('title').text, item.find('link').text))


在上面的示例中,我还将标题和链接作为二值元组添加到news列表。

对于您的示例供稿,结果为:

[('The Autism Gap: What Works', 'http://www.11alive.com/rss/article/278819/3/The-Autism-Gap-What-Works'), ('Adairsville effort continues with concert ', 'http://www.11alive.com/rss/article/279178/3/Adairsville-effort-continues-with-concert-'), ('Gold Coast Salads expands seafood salad recall on Listeria fears', 'http://www.11alive.com/rss/article/279147/3/Gold-Coast-Salads-expands-seafood-salad-recall-on-Listeria-fears')]


您也可以简化item查找:

items = root.findall('channel/item')


您确实想查看feedparser library;它处理多种提要格式,并正确处理诸如缓存和清理之类的事情。

关于python - 打印RSS提要中的最新三个项目及其标题和链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15051836/

10-10 14:52