如何修复Selenium实现的Airbnb爬虫,实现公寓逐个点击截图
修复Airbnb爬虫逐个点击公寓的逻辑要点
要解决重复点击第一个公寓的问题,需要聚焦以下HTML相关部分来调整逻辑:
公寓列表的容器与元素集合
检查当前代码是否仅获取单个公寓元素(比如用querySelector),而非所有公寓的集合(querySelectorAll)。找到Airbnb公寓列表的父容器(通常带有data-testid="search-results"这类标识),获取其下所有公寓卡片元素(比如div[data-testid="listing-card"]),确保代码是遍历这个集合中的元素,而非每次都重新选取第一个。公寓卡片的唯一标识属性
每个公寓卡片都会带有唯一属性,比如data-id、data-listing-id或类似自定义属性。利用这些唯一标识记录已访问的公寓,返回列表页后,通过筛选未访问的标识定位下一个目标,避免重复点击同一元素。列表的动态渲染与加载状态
Airbnb的公寓列表是滚动动态加载的,返回列表页后DOM可能重新渲染,之前的元素引用会失效。需要重新获取最新的公寓元素集合,同时处理滚动加载逻辑——当当前可见列表遍历完后,触发滚动加载更多公寓,再更新集合继续遍历。点击元素的索引遍历逻辑
避免每次固定选取第一个元素,改为通过索引遍历集合:比如初始化索引变量currentIndex = 0,每次点击document.querySelectorAll('[data-testid="listing-card"]')[currentIndex],完成截图返回后将currentIndex += 1,再定位下一个元素。
内容的提问来源于stack exchange,提问作者bSmall
相关产品推荐
相关产品推荐

