RSS 링크를 구문 분석하기 위해 Python 스크립트를 작성 중입니다.범용 피드 파서 문제
feed = feedparser.parse(url)
items = feed["items"]
기본적으로
공급 [ "항목"] 모두 반환해야합니다 : 여기에 FreeBSD Security Advisories 을 구문 분석하는 동안 예를 들어, 샘플 코드입니다
은 내가 Universal Feed Parser 사용하고 난 몇 가지 링크에 문제가 발생하고 피드의 항목, 항목으로 시작하는 필드는 항상 공백을 반환합니다.
나는 또한 예상대로 다음 링크를 구문 분석하는 것을 확인할 수: 그에서 FreeBSD의에서 사람이 할,
이 피드와 이것을 문제가 아니다 표준을 존중합니까?
편집 : 나는 파이썬 2.7을 사용하고
. Hai Vu처럼 BeautifulSoup과 함께 feedparser를 사용하여 마감했습니다. 여기 내가 함께 결국 샘플 코드, 약간 변경 :
def rss_get_items_feedparser(self, webData):
feed = feedparser.parse(webData)
items = feed["items"]
return items
def rss_get_items_beautifulSoup(self, webData):
soup = BeautifulSoup(webData)
for item_node in soup.find_all('item'):
item = {}
for subitem_node in item_node.findChildren():
if subitem_node.name is not None:
item[str(subitem_node.name)] = str(subitem_node.contents[0])
yield item
def rss_get_items(self, webData):
items = self.rss_get_items_feedparser(webData)
if (len(items) > 0):
return items;
return self.rss_get_items_beautifulSoup(webData)
def parse(self, url):
request = urllib2.Request(url)
response = urllib2.urlopen(request)
webData = response .read()
for item in self.rss_get_items(webData):
#parse items
나는 또한 그것을 읽지 않고, rss_get_items에 직접 응답을 통과했지만, 그것을 던져 BeautifulSoup로는 시도 예외가 읽을
:
을File "bs4/__init__.py", line 161, in __init__
markup = markup.read()
TypeError: 'NoneType' object is not callable
몇 개의 RSS 링크를 구문 분석해야하는데, BeautifulSoup이 RSS의 모든 변형을 처리 할 수 있다고 생각합니까? 또는 결과가 BeautifulSoup를 사용하지 않는 경우 조합을 먼저 사용하여 피드 파서로 시도해보십시오. – hDan
필자는 feedparser와 함께 가서 BeautifulSoup로 돌아 간다. –