![](/img/trans.png)
[英]Scrape websites with infinite scrolling using selenium and beautifulsoup return repeated elements
[英]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.