看起來你想要團隊徽標縮略圖?
import urllib2
import BeautifulSoup
url = 'http://www.cbssports.com/nba/draft/mock-draft'
txt = urllib2.urlopen(url).read()
bs = BeautifulSoup.BeautifulSoup(txt)
# get the main table
t = bs.findAll('table', attrs={'class': 'data borderTop'})[0]
# get the thumbnail urls
imgs = [im["src"] for im in t.findAll('img')] if "logos" in im["src"]]
imgs
現在看起來像
[[u'http://sports.cbsimg.net/images/nba/logos/30x30/NO.png',
u'http://sports.cbsimg.net/images/nba/logos/30x30/CHA.png',
u'http://sports.cbsimg.net/images/nba/logos/30x30/WAS.png',
u'http://sports.cbsimg.net/images/nba/logos/30x30/CLE.png',
等,這些都是每一個標誌,這是所有的HTML實際上包含的文件位置;如果你想要實際的照片,你必須分別獲取每張照片。
列表中包含每個標誌重複引用;刪除重複項的最快方法是
imgs = list(set(imgs))
或者,該列表不包括每個團隊;如果您有完整的團隊名稱縮減列表,則可以直接構建徽標-URL列表。
另外,在網站上看,每個30x30的logo都有相應的90x90標識,您可能更喜歡 - 更大更清晰。如果是這樣,
imgs = [im.replace('30x30', '90x90') for im in imgs]
imgs
現在看起來像
[u'http://sports.cbsimg.net/images/nba/logos/90x90/BOS.png',
u'http://sports.cbsimg.net/images/nba/logos/90x90/CHA.png',
u'http://sports.cbsimg.net/images/nba/logos/90x90/CLE.png',
u'http://sports.cbsimg.net/images/nba/logos/90x90/DAL.png',
等
現在,每個網址,我們下載的圖片,並將其保存:
import os
savedir = 'c:\\my documents\\logos' # assumes this dir actually exists!
for im in imgs:
fname = im.rsplit('/', 1)[1]
fname = os.path.join(savedir, fname)
with open(fname, 'wb') as outf:
outf.write(urllib2.urlopen(im).read())
,你有你的標誌。
你是什麼意思的「打印出一個圖像」和「讓我在哪裏圖像是在頁面源」? –