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