到目前为止,我的代码是:
year = range(1958,2013)
randomYear = random.choice(year)
randomYear = str(randomYear)
page = range(1,5)
randomPage = random.choice(page)
randomPage = str(randomPage)
print(randomPage, randomYear)
url = 'http://www.billboard.com/artists/top-100/'+randomYear+'?page='+randomPage
url1 = urlopen(url)
htmlSource = url1.read()
url1.close()
soup = BeautifulSoup(htmlSource)
listm = soup.findAll('article', {'class': 'masonry-brick','style' : 'position; absolute; top; 0px; left: 0px;'})
for listm in soup.findAll('div',{'class': 'thumbnail'}):
for listm in soup.find('img alt')(''):
print(listm)
我想要做的是获取img alt =''文字。我认为我有一点正确,但它没有显示任何内容。
答案 0 :(得分:5)
要获取具有<img>
属性的alt
元素,您可以使用soup('img', alt=True)
:
print("\n".join([img['alt'] for img in div.find_all('img', alt=True)]))
不要为同一目的使用相同的名称,这会损害代码的可读性:
soup = BeautifulSoup(htmlSource)
articles = soup('article', 'masonry-brick',
style='position; absolute; top; 0px; left: 0px;')
for div in soup.find_all('div', 'thumbnail'):
for img in div.find_all('img', alt=True):
print(img['alt'])
注意:articles
未使用。
我只需要一个img标签。我怎样才能做到这一点?
您可以使用.find()
方法,按<img>
获取一个<div>
元素:
for div in soup.find_all('div', 'thumbnail'):
img = div.find('img', alt=True)
print(img['alt'])
答案 1 :(得分:0)
我认为你的意思是:
soup.find('img', alt='')
这将找到一个img
标记,其属性alt
的值为''
(无)