2016-03-30 202 views
1

我使用BeautifulSoup抓取网站。当它返回链接时,它以/watch/411012/1/test.html的形式出现 - 我如何设置它以便返回http://website.co.uk/watch/411012/1/test.htmlBeautifulSoup网页抓取

from bs4 import BeautifulSoup 
import urllib2 
import re 

resp = urllib2.urlopen("http://website.co.uk") #add more sites 
soup = BeautifulSoup(resp, from_encoding=resp.info().getparam('charset')) 

for link in soup.find_all('a', href=re.compile('sports')): 
    print link['href'] 

回答

0

使用urlparse.urljoin()

from urlparse import urljoin 

base_url = "http://website.co.uk" 
for link in soup.find_all('a', href=re.compile('sports')): 
    print urljoin(base_url, link['href']) 
+0

我怎么能对多个网站这样做是在一个脚本。 –

+0

@AlexMcbatman好吧,base_url会是你正在浏览的网站 - “http://website.co.uk”在这种情况下......看看如果你遇到困难时创建一个单独的问题是否有意义。谢谢。 – alecxe

相关问题