Python的Beautifulsoup img标签解析

问题描述:

我使用beautifulsoup解析所有的img标签,它存在于“www.youtube.com”Python的Beautifulsoup img标签解析

的代码是

import urllib2 
from BeautifulSoup import BeautifulSoup 
page = urllib2.urlopen('http://www.youtube.com/') 
soup = BeautifulSoup(page) 
tags=soup.findAll('img') 

,但我没有得到所有的img标签。获取img标签也是无效的。

解析后得到的img标签与页面源img标签不同。一些属性缺失。

我需要让所有的视频IMG标签youtube.com

明确使用soup.findAll(name='img')工作,我请大家帮忙

,我似乎不缺少从页面什么。

+0

'soup.findAll(name ='img')'返回相同的result.i试图显示它在html页面中什么也不显示。 – TomJoy

+0

如果您打印出'urllib2.urlopen('http://www.youtube.com/')的结果'实际上是否有任何要显示的内容? –

+1

我打印了它的img标签打印了一些无效的src。并且所有的img标签都没有获取。 – TomJoy

看起来工作时,我在这里尝试

import urllib2 
from BeautifulSoup import BeautifulSoup 
page = urllib2.urlopen('http://www.youtube.com/') 
soup = BeautifulSoup(page) 
tags=soup.findAll('img') 
print "\n".join(set(tag['src'] for tag in tags)) 

可生产这看起来OK我

http://i1.ytimg.com/vi/D9Zg67r9q9g/market_thumb.jpg?v=723c8e 
http://s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif 
//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif 
/gen_204?a=fvhr&v=mha7pAOfqt4&nocache=1337083207.97 
http://i3.ytimg.com/vi/fNs8mf2OdkU/market_thumb.jpg?v=4f85544b 
http://i4.ytimg.com/vi/CkQFjyZCq4M/market_thumb.jpg?v=4f95762c 
http://i3.ytimg.com/vi/fzD5gAecqdM/market_thumb.jpg?v=b0cabf 
http://i3.ytimg.com/vi/2M3pb2_R2Ng/market_thumb.jpg?v=4f0d95fa 
//i2.ytimg.com/vi/mha7pAOfqt4/hqdefault.jpg 
+0

我尝试过,但大部分src都是一样的,大部分img标签都没有。 – TomJoy

+0

对我来说,它只显示第一个图像源,并不是全部:-( –

def grabimagetags(): 
import urllib2 
from BeautifulSoup import BeautifulSoup 
page = urllib2.urlopen('http://www.youtube.com/') 
soup = BeautifulSoup(page) 
tags = soup.findAll('img') 
list.extend(set(tag['src'] for tag in tags)) 


return list 

grabimagetags()

我只作这个变化,使你可以通过img标签列表

我有类似的问题。我无法找到所有图像。所以这里是一段代码,它会给你一个图片标签的任何属性值。

from BeautifulSoup import BeautifulSoup as BSHTML 
import urllib2 
page = urllib2.urlopen('http://www.youtube.com/') 
soup = BSHTML(page) 
images = soup.findAll('img') 
for image in images: 
    #print image source 
    print image['src'] 
    #print alternate text 
    print image['alt']