无法解析网页中指向不同海报的链接

时间:2019-01-06 19:59:43

标签: python python-3.x selenium selenium-webdriver web-scraping

尝试从this site的左侧区域获取所有电影海报,但是我的脚本仅解析第一个并退出。

如何获取所有以.jpg扩展名结尾的电影海报链接?

from selenium import webdriver

def fetch_image_links(driver,link):
    driver.get(link)
    for item in driver.find_elements_by_css_selector("a[href^='/title/'] img.loadlate[src$='.jpg']"):
        print(item.get_attribute("src"))

if __name__ == '__main__':
    url = "https://www.imdb.com/list/ls006385184/"
    driver = webdriver.Chrome()
    try:
        fetch_image_links(driver,url)
    finally:
        driver.quit()

1 个答案:

答案 0 :(得分:2)

打开页面时,只有前几部电影具有海报-其他所有电影均具有默认图像。 您需要向下滚动页面,等待片刻没有显示默认图像(已加载所有电影海报)

from selenium.webdriver.common.keys import Keys 

default_img = "https://m.media-amazon.com/images/G/01/imdb/images/nopicture/large/film-184890147._CB470041630_.png"

def fetch_image_links(driver,link):
    driver.get(link)
    while driver.find_elements_by_css_selector("a>img[src='%s']" % default_img):
        driver.find_element_by_tag_name('a').send_keys(Keys.PAGE_DOWN)
    for item in driver.find_elements_by_css_selector("a[href^='/title/'] img.loadlate[src$='.jpg']"):
        print(item.get_attribute("src"))