2017-03-06 78 views
1

我是新來的抓取和解析。我想提取網址。但我正在逐漸如何提取網址?

無 無

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

您可以定位包含內部contenturl子的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' 

或者,你可以申請一個regular expressionmeta元素的content屬性,然後重複使用相同的表達式提取的網址:

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