欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 关于selenium元素找不到的问题(Unable to locate element: {“method“:“xpath“,“selector“:“)

关于selenium元素找不到的问题(Unable to locate element: {“method“:“xpath“,“selector“:“)

2025/6/27 19:00:36 来源:https://blog.csdn.net/qq_45193988/article/details/143820847  浏览:    关键词:关于selenium元素找不到的问题(Unable to locate element: {“method“:“xpath“,“selector“:“)

之前一个任务让用selenium爬取制定网站的一些数据,写了代码,在本机上写完后,移植到服务器上,然后在服务器上跑了两次发现,元素找不到了
Unable to locate element: {"method":"xpath","selector":"
然后由于服务器没有图形化界面,不能一步一步的调试,后来使用

driver.get("https://www.baidu.com/")
# 等待页面加载
time.sleep(10)
html = driver.page_source# 将页面源代码写入到本地文件
with open("百度.html", "w", encoding="utf-8") as file:file.write(html)

将界面下载下来,发现,呕吼,IP被封了,被封了,封了,了……
然后换了台服务器,然后为了防止再次被封,加入了

options.add_argument(f"x-user-uuid={uuid.uuid4()}")
# 添加随机User-Agent,模拟不同的浏览器和设备,减少被网站识别为爬虫
user_agent = ua.random
options.add_argument(f'--user-agent={user_agent}')

然后,运行了一次,完美解决!(其实是又产生了新的问题QAQ)
过了两周,查看日志发现,裂开了,又不好使了,然后,我重新运行了一遍,想找找问题,结果他又好使了。我真的裂开,裂开了啊,再然后下载页面,发现他会出现两种页面,并且页面源代码完全不同??????怀疑人生
后来花了好久好久的时间,终于找到了问题,问题就出在:

# 添加随机User-Agent,模拟不同的浏览器和设备,减少被网站识别为爬虫
user_agent = ua.random
options.add_argument(f'--user-agent={user_agent}')

他会随机模拟出手机标识,即让网站发送手机浏览器适应的页面
所以最终解决办法,修改这段代码:

ua = UserAgent()# 定义一个函数来生成随机的桌面 User-Agent
def get_random_desktop_user_agent():desktop_browsers = ['Chrome', 'Firefox', 'Edge', 'Safari']browser = random.choice(desktop_browsers)return ua[browser]# 生成随机的桌面 User-Agent
user_agent = get_random_desktop_user_agent()
options.add_argument(f'--user-agent={user_agent}')

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com