Beautifulsoup 解析不工作

Beautifulsoup parse not working

我正在尝试从电影海报网站解析 url,但它保持 returning 一个空数组。

htmltext = (urllib.urlopen("http://www.movieposterdb.com/Movie/"+str(ID))).read()
soup = BeautifulSoup(htmltext, 'html.parser')
links = soup.find("a", { "class" : "mpdb-movie-thumbnails-img-link" })
print links

html 来源看起来像这样

<a class="mpdb-movie-thumbnails-img-link" href="javascript:ShowPoster('87a25cbd');"><img class="mpdb-movie-thumbnails-img" title="The Joneses Poster" src="/img/posters/11_05/1972/68646/t_68646_87a25cbd.jpg" alt=""></a>

它至少应该 return 一些...

谢谢

BeautifulSoup 只抓取页面源上可见的内容用于解析。如果您查看任何电影页面的源代码,您会发现 没有 没有带有 class 的 a 标签 - 因此,您的 soup.find_all 调用 returns 一个空列表。使用 selenium,我能够像这样获取 img 标签:

from selenium import webdriver

link = 'http://www.movieposterdb.com/Movie/20684'

driver = webdriver.Firefox()

driver.get(link)
links = driver.find_elements_by_tag_name('img')

for i in links:
    print i.get_attribute('src')

现在,您可以将其过滤为仅电影海报 link,如下所示:

for i in links:
    if 'posters' in i.get_attribute('src'):
        print i.get_attribute('src')