单击图像时获取链接

时间:2017-11-29 17:45:14

标签: python html selenium web-scraping

这是一个图片,当点击该图片时,用户被重定向到另一个页面。

<div class="lis_el          " id="cel_lisimg_18755" onclick="lis_mostrarficha(0);">

    <div class="lis_elc ">
        <div class="lis_eloverflow">
            <div class="lis_elc_img">
                <div class="lis_elc_imgc"><img class="lis_elc_img_img" id="lisimg_18755" src="https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/201705/29/0280282401564764342_1_.jpg">
                </div>
            </div>
        </div>
        <div class="lis_info  ">

                            <div class="clear"></div>

            <div class="lis_info_precio">


                            5<span class="lis_info_preciop">,99€</span>

            </div>
            <h2>Camiseta flame</h2>
            <div class="lis_mascol displaynone" id="lis_mascol18755" style="display: block;">+ Colores</div>
        </div>
    </div>
</div>

我试图在Python中使用Selenium获取该链接,但我不知道从哪里可以获得它。但是我注意到了这一点,我想这个函数会进行重定向:

onclick="lis_mostrarficha(0);

我在网络开发方面没有太多经验,所以我不确定如何在不点击的情况下获取该链接,因为这需要太长时间。

谢谢,

1 个答案:

答案 0 :(得分:1)

在这种情况下,您必须执行click事件,因为HTML不包含链接到图像的URL - 它调用脚本。 可以完成的是使用Selenium单击包含onclick事件的元素。

from selenium.webdriver.chrome.options import Options
from selenium import webdriver

options = Options()
options.add_argument('--disable-infobars')
driver = webdriver.Chrome(chrome_options=options)

div = find_element_by_id('cel_lisimg_18755')
div.click()

# Then wait for the page to load

# Get the URL
url = driver.current_url
print(url)  # Assumes v3 python