findall
을 여러 개 사용하려고 시도하면 index range error
이 표시되지만 사용하면 코드가 작동합니다. 파일 객체에 .read()
를 호출findall의 여러 인스턴스를 사용할 수 없습니다
from re import findall
news = open('download7.html', 'r')
title = findall('<item>[^<]+<title>(.*)</title>', news.read())
link = findall('<item>[^<]+<title>[^<]+</title>[^<]+<link>(.*)</link>', news.read())
description = findall('<!\[CDATA\[[^<]+<p>(.*)</p>', news.read())
pubdate = findall('<pubDate>([^<]+)</pubDate>', news.read())
image_regex = findall('url="([^"]+627.jpg)', news.read())
print(image_regex[0])
첫 번째 통화 후에 빈 목록/Nones가 없습니까? 이것을 확인해 주시겠습니까? 왜 news.read()를 변수에 할당하지 않습니까? 순수한 html 안에 물건을 검색하기 위해 regexes를 사용하는 IMHO는 항상 나쁜 생각입니다. XML과 같은 구조에 전용 모듈을 사용하려고 했습니까? 간단한 xpath를 사용할 수 있기 때문에 더 빠르고 쉬워야합니다. – Arogancky
답장을 보내 주셔서 감사합니다. 나는 정규식을 사용해야한다. 숙제를 좋아하기 때문에 다른 것을 사용할 수 없기 때문이다. 그것은 news.read()를 변수에 할당 한 후에 작동하지만 왜 news.read()를 변수에 할당 한 후에 작동하는지 설명 할 수 있습니까? – alphakiller