2013-08-18 19 views
5

ile özniteliğe dayalı görüntü src ayıklanıyor IMDb'den bir HTML sayfası almak için BeautifulSoup kullanıyorum ve poster resmini sayfadan çıkarmak istiyorum. Resmi özniteliklerden birine dayanarak aldım, ancak içindeki verileri nasıl çıkaracağımı bilmiyorum. - hatalardan sadece birkaç Neredeyse geldinBeautifulSoup

url = 'http://www.imdb.com/title/tt%s/' % (id) 
soup = BeautifulSoup(urllib2.urlopen(url).read()) 
print("before FOR") 
for src in soup.find(itemprop="image"): 
    print("inside FOR") 
    print(link.get('src')) 

cevap

8

:

İşte benim kod. soup.find(), bir listeyle eşleşmeyen ilk öğeyi alır, böylece üzerinde yineleme yapmanız gerekmez. Öğeyi aldıktan sonra, sözlüğünü (src gibi) sözlük erişimi kullanarak edinebilirsiniz. id() yerleşik bir işlevi olduğunu ve bu maskelemek için kötü bir uygulamadır, çünkü ben film_id için id değiştirdik

film_id = '0423409' 
url = 'http://www.imdb.com/title/tt%s/' % (film_id) 
soup = BeautifulSoup(urllib2.urlopen(url).read()) 
link = soup.find(itemprop="image") 
print(link["src"]) 
# output: 
http://ia.media-imdb.com/images/M/[email protected]@._V1_SY317_CR0,0,214,317_.jpg 

: Burada tekrar çalışması versiyonu.

5

Örneğinizin çok yakın olduğuna inanıyorum. Find() yerine findAll() yöntemini kullanmanız ve yinelediğinizde src'den bağlantıya geçersiniz. Aşağıdaki örnekte ben tag

Bu kod BeautifulSoup4 ile işime yarayıp bunu açık:

url = 'http://www.imdb.com/title/tt%s/' % (id,) 
soup = BeautifulSoup(urllib2.urlopen(url).read()) 
print "before FOR" 
for tag in soup.findAll(itemprop="image"): 
    print "inside FOR" 
    print(tag['src'])