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')
我正在尝试从电影海报网站解析 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')