Selenium爬取Hemnet网站脚本无输出,如何解决?
Hemnet爬取无输出问题排查方案
验证页面元素定位有效性
打开浏览器开发者工具,直接搜索你用来定位房源的选择器(如div.result-item),确认页面加载后目标元素确实存在。Hemnet大量使用动态加载,静态定位可能无法匹配到内容。可以改用显式等待替代硬等待,确保元素加载完成:from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 等待房源列表加载完成,超时10秒 WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "result-item")) )检查页面是否加载了目标内容
在脚本中添加print(driver.page_source),打印当前页面源码,确认其中包含Lidingö地区的别墅数据。如果源码为空或无目标内容:- 核对请求URL是否正确,确认已选中Lidingö区域和别墅类型的筛选条件
- 排查是否触发反爬机制,网站可能检测到Selenium特征,返回空页面或默认页面
排查提取逻辑的问题
先打印房源列表的长度print(len(房源列表)),确认是否成功获取到元素:- 如果长度为0,说明元素定位错误,重新调整选择器
- 如果长度大于0但无内容输出,可能是子元素提取失败,用
try-except捕获异常排查:for item in items: try: price = item.find_element(By.CLASS_NAME, "property-price").text address = item.find_element(By.CLASS_NAME, "property-address").text print(f"价格: {price}, 地址: {address}") except Exception as e: print(f"提取房源信息出错: {e}")
确认浏览器驱动版本匹配
检查ChromeDriver(或你使用的浏览器驱动)版本与本地浏览器版本完全一致,版本不匹配可能导致页面加载异常但无报错信息。规避Selenium特征检测
Hemnet可能通过navigator.webdriver属性识别自动化工具,添加参数隐藏该特征:options = webdriver.ChromeOptions() options.add_argument("--disable-blink-features=AutomationControlled") driver = webdriver.Chrome(options=options)
内容的提问来源于stack exchange,提问作者brustabl1
相关产品推荐
相关产品推荐

