簡體   English   中英

使用 Python 和 selenium,在無限滾動的網站上獲取元素?

[英]Using Python and selenium, get elements on infinite scrolling website?

我需要從本網站上的圖片中收集所有“alt”和網址: https : //ibb.co/album/D5f4bg

我知道如何獲取該信息,只需在包含圖像的 div 上設置驅動程序並獲取我需要的所有屬性,阻止我的是圖像通過向下滾動而不是按頁碼加載,我怎么能得到所有的在收集我需要的信息之前加載圖像?

剛剛測試了這段 JavaScript 代碼,如果您從 Selenium 執行它,這將起作用:

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

let img_count = parseInt(document.querySelector("#album > div.content-width > div.header.header-content.margin-bottom-10 > div.header-content-left > div > div.breadcrum-item.pop-btn.pop-btn-auto.pop-keep-click.pop-btn-desktop > div > div > div > div.user-card-footer > a:nth-child(1) > b").innerText)

let current_img_count = document.getElementsByTagName('img').length;

while(current_img_count < img_count)
{
    window.scrollTo(0,document.body.scrollHeight);
    await sleep(1000);
    current_img_count = document.getElementsByTagName('img').length;
}

基本上,它從網站的可見標簽中獲取顯示的圖像數量,然后將其與當前存在的圖像數量進行比較。 如果 current_image_count 仍然小於站點的列表數量,那么它將滾動到頁面底部,等待一秒鍾,然后再次比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM