已抓取网页对象,如何获取Play Store某开发者应用的实际链接?
解决Google Play开发者旗下应用链接提取问题
问题根源
- 页面为动态渲染,原代码执行时目标元素尚未加载完成
ULeU3b仅为应用卡片的容器类,实际链接嵌套在内部的<a>标签中- 未处理滚动加载逻辑,开发者页面应用数量较多时,首屏仅显示部分内容
修正后的代码
import time from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化浏览器 driver = webdriver.Chrome(executable_path=ChromeDriverManager().install()) driver.get("https://play.google.com/store/apps/dev?id=5305197572942248936") driver.maximize_window() # 滚动页面加载全部应用 last_height = driver.execute_script("return document.body.scrollHeight") while True: driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(2) # 等待新内容加载 new_height = driver.execute_script("return document.body.scrollHeight") if new_height == last_height: break last_height = new_height # 等待应用元素加载完成,定位到带链接的a标签 wait = WebDriverWait(driver, 10) app_link_elements = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//div[@class='ULeU3b']/a"))) # 提取并打印所有应用链接 for element in app_link_elements: full_link = element.get_attribute("href") print(full_link) driver.quit()
核心优化点
- 改用显式等待确保元素完全加载后再获取,避免空结果
- 通过
XPATH直接定位容器内的<a>标签,提取href属性得到完整链接 - 添加滚动循环逻辑,触发页面加载所有应用内容
- 代码末尾关闭浏览器,释放资源
内容的提问来源于stack exchange,提问作者sam kumar
相关产品推荐
相关产品推荐

