我试图从下面的链接中抓取图片链接,但我无法
我使用了下面的代码
x = ' https://www.online.citibank.co.in/credit-card/rewards/citi-rewards-credit-card?eOfferCode=INCCCCTWAFCTRELM'
html = urlopen(x)
soup = BeautifulSoup(html, 'lxml')
print(soup.find('div', class_ = "m-top-sm block-hero-art-2 display-image"))
输出:
<img _ngcontent-c11="" alt="Citi Logo" class="logo" crossorigin="anonymous" src="https://www.cdn.citibank.com/v1/ingcb/cbol/files/images/logos/logo.png?_bust=2021-01-21T05-05-29-195Z"/>
但这是我得到的 src 中的错误链接,而不是图像链接。
HTML 代码中突出显示的部分是图片链接所在的位置。 如果我能得到正确的代码来抓取图片链接,我会很高兴。
应该使用哪个标签才能获得准确的图片链接?
任何人都可以帮助我使用替代代码来获得所需的结果吗?
答案 0 :(得分:1)
根据@baduker 评论卡图像是由 JS 动态添加的,所以 bs4 在源 HTML 中看不到这个。所以你应该尝试 selenium 和 bs4
from bs4 import BeautifulSoup
from urllib.request import urlopen
from selenium import webdriver
x = ' https://www.online.citibank.co.in/credit-card/rewards/citi-rewards-credit-card?eOfferCode=INCCCCTWAFCTRELM'
wb = webdriver.Chrome()
wb.get(x)
soup = BeautifulSoup(wb.page_source, 'lxml')
print(soup.find('div', class_ = "m-top-sm block-hero-art-2 display-image"))
print(soup.find('div', class_ = "m-top-sm block-hero-art-2 display-image").find('img').get('src'))
要安装 selenium,请在您的终端中运行它或点击上面的链接。
pip install selenium