我是Python和编程的新手,如果这个问题很愚蠢,请原谅。
我一直在循序渐进地学习关于RSS抓取的this教程,但是在试图收集到所收集文章标题的相应链接时,Python出现了一个“列表索引超出范围”的错误。
这是我的代码:
from urllib import urlopen
from BeautifulSoup import BeautifulSoup
import re
source = urlopen('http://feeds.huffingtonpost.com/huffingtonpost/raw_feed').read()
title = re.compile('<title>(.*)</title>')
link = re.compile('<link>(.*)</link>')
find_title = re.findall(title, source)
find_link = re.findall(link, source)
literate = []
literate[:] = range(1, 16)
for i in literate:
print find_title[i]
print find_link[i]
当我只告诉它检索标题时,它执行得很好,但当我想检索标题和它们对应的链接时,它会立即抛出索引错误。
如有任何帮助,将不胜感激。
我认为您使用了错误的regex从页面中提取链接。
查看页面的
html source
,您会发现链接未包含在<link></link>
模式。实际上模式是
<link rel="alternate" type="text/html" href= links here
。这就是你的regex不工作的原因。
您可以使用^{} module to parse an RSS feed from a given url :
输出
使用regular expressions to parse rss(xml)可能不是一个好主意。
相关问题 更多 >
编程相关推荐