2017-03-06 5 views
1

근근이 살아가고 파싱하는 것이 처음입니다. URL을 추출하고 싶습니다. 하지만어떻게 URL을 추출 할 수 있습니까?

없음 것도

import requests 
from bs4 import BeautifulSoup 

url = "xabh.com" 
r = requests.get('http://xabh.com') 
c = r.content 

soup = BeautifulSoup(c,'lxml') 

soup.find_all('meta') 

for link in soup.find_all('meta'): 
    print(link.get('url')) 

을 받고하지 오전 이는 수프

<html><head><title>XABH</title> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 
<meta content="0; url=http://www.xabh.com/scripts/detailsnew.asp?id=mar0617" http-equiv="refresh"/> 
</head><body> 
</body></html> 

답변

3

당신은 content 내부 url 문자열을 포함하는 meta 요소를 타겟팅 할 수 있습니다.

: URL을 추출하는

In [8]: content = soup.select_one("meta[content*=url]")["content"] 

In [9]: content.split(";")[-1].split("url=")[-1] 
Out[9]: 'http://www.xabh.com/scripts/detailsnew.asp?id=mar0617' 

을 또는 당신이 meta 요소의 content 속성에 regular expression을 적용 할 수 있습니다 다음 동일한 표현을 다시 사용 : 그런 다음 ;에 의해 분할 할 수 있습니다 후 url=에 의해

In [10]: import re 

In [11]: pattern = re.compile(r"url=(.*?)$") 

In [12]: content = soup.find("meta", content=pattern)["content"] 

In [13]: pattern.search(content).group(1) 
Out[13]: 'http://www.xabh.com/scripts/detailsnew.asp?id=mar0617' 
+0

대단히 감사합니다 ... – maximusdooku

관련 문제