5

我正在使用 beautifulsoup 来解析“www.youtube.com”中存在的所有 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标签不同。缺少某些属性。

我需要在 youtube.com 中获取所有视频 img 标签

请帮忙

4

6 回答 6

5

当我在这里尝试时似乎有效

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))

产生这个对我来说看起来不错

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
于 2012-05-15T12:03:34.830 回答
3

我有类似的问题。我找不到所有图像。所以这是一段代码,它将为您提供图像标签的任何属性值。

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']
于 2017-11-07T20:25:50.097 回答
0

明确使用soup.findAll(name='img')对我有用,我似乎没有从页面中遗漏任何内容。

于 2012-05-15T12:00:52.970 回答
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

抓取图像标签()

我只会进行此更改,以便您可以传递 img 标签列表

于 2016-10-06T06:10:44.020 回答
0

在我的情况下,一些图像不包含src.

所以我这样做是为了避免keyError异常:

art_imgs = set(img['src'] for img in article.find_all('img') if img.has_attr('src')) 
于 2020-02-18T19:40:04.620 回答
0

尝试这个。

from simplified_scrapy import SimplifiedDoc, req
url = 'https://www.youtube.com'
html = req.get(url)
doc = SimplifiedDoc(html)
imgs = doc.listImg(url = url)
print([img.url for img in imgs])

imgs = doc.selects('img')
for img in imgs:
  print (img)
  print (doc.absoluteUrl(url,img.src))
于 2020-02-19T01:21:31.867 回答