링크가 말할 문제가 정규식
를 사용하여 HTML 링크의 일부를 선택하는 방법을 파악하는 데 문제 : 나는 레이스 ID를 얻는 방법을 알아 낸<a href="race?raceid=1234">Mushroom Cup</a>
, 하지만 나는 내 인생에서 정규 표현식을 사용하여 '버섯 컵'을 찾는 방법을 알아낼 수 없습니다. 내가 할 수있는 최선의 방법은 1234> 버섯 컵입니다.
정규식을 처음 접했고 이해하기가 너무 어렵습니다.
링크가 말할 문제가 정규식
를 사용하여 HTML 링크의 일부를 선택하는 방법을 파악하는 데 문제 : 나는 레이스 ID를 얻는 방법을 알아 낸<a href="race?raceid=1234">Mushroom Cup</a>
, 하지만 나는 내 인생에서 정규 표현식을 사용하여 '버섯 컵'을 찾는 방법을 알아낼 수 없습니다. 내가 할 수있는 최선의 방법은 1234> 버섯 컵입니다.
정규식을 처음 접했고 이해하기가 너무 어렵습니다.
같은 지금까지 HTML을 구문 분석에 대한 정규식을 사용하지 마십시오. 대신 lxml 또는 BeautifulSoup과 같은 HTML 파서를 사용하십시오. urlparse
링크 매개 변수의 값을 얻기 위해 사용되는,
import urlparse
from bs4 import BeautifulSoup
soup = BeautifulSoup("""
<html>
<head>
<title>Python regex url grab - Stack Overflow</title>
</head>
<body>
<a href="race?raceid=1234">Mushroom Cup</a>
</body>
</html
""")
link = soup.find('a')
par = urlparse.parse_qs(urlparse.urlparse(link.attrs['href']).query)
print par['raceid'][0] # prints 1234
print link.text # prints Mushroom Cup
참고 :
여기 BeautifulSoup
를 사용하는 예제입니다. 자세한 내용은 Retrieving parameters from a URL을 참조하십시오.
또한 참조 : 도움이
희망.
오 ... 그게 더 좋을 것 같습니다. – amchugh89
+1 나는 일반적으로 구문 분석에 동의합니다. html로 정규 표현식을 사용하는 것은 좋지 않지만이 솔루션이 OP 질문에 대한 간단한 정규 표현식보다 월등 한 이유를 설명하는 것이 좋습니다. 정규식을 사용하지 않는 몇 가지 이유가 있음을 압니다 (주로 html은 중첩 된 언어이고 정규식은 그렇게 잘 중첩되지 않습니다) –
입력 값은 얼마나 다를 수 있습니까? 대용량 문서의 여러 위치에서이 데이터를 추출하는 경우 정규식 대신 HTML 파서를 사용하는 것이 좋습니다. –