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

devtools/2024/11/20 19:19:11/

之前一个任务让用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}')

http://www.ppmy.cn/devtools/135561.html

相关文章

STM32(hal库)中,为什么DMA没有MSP函数?

在STM32 HAL库中,DMA(直接存储器访问)并没有像其他某些外设(如USART、SPI等)那样拥有专门的MSP(MCU Services Package)初始化函数,这主要是由于DMA的特性和HAL库的设计哲学所决定的。…

ubuntu安装cuda、cudnn和TensoRT【分步安装】

我说实话,这个环境安装真的要了老命,太tm恶心了。 因为遇到了很多问题,非常之恶心 问题一:版本对应 问题二:下载具慢 问题三:上NVIDIA有时候上不去 问题四:找到对应版本点不了 问题五&…

在 Ubuntu 上使用 Traefik Proxy 为 Docker 容器设置反向代理

简介 Traefik(发音为"traffic")是一个开源的反向代理和负载均衡器。它为微服务架构提供了网络入口,特别是在动态、服务密集的环境中(如容器、微服务架构)。由于其设计灵活且易于实施,Traefik 成…

EMall实践DDD模拟电商系统总结

目录 一、事件风暴 二、系统用例 三、领域上下文 四、架构设计 (一)六边形架构 (二)系统分层 五、系统实现 (一)项目结构 (二)提交订单功能实现 (三&#xff0…

flex布局样式 类名化scss(sass)

sass 和less 语法有差异需要转化一下 $directionList: row, row-reverse, column, column-reverse; $justifyContentList: flex-start, flex-end, center, space-between, space-around, space-evenly; $alignItemsList: flex-start, flex-end, center, baseline, stretch;mixi…

数据挖掘英语及概念

分类 classify 上涨或跌 回归 regression 描述具体数值 分类模型评估 1.混淆(误差)矩阵 confusion matrix 2.ROC曲线 receiver operating characteristic curve 接收者操作特征曲线 3.AUC面积 area under curve ROC曲线下与坐标轴围成的面积&#x…

安宝特分享 | 如何利用AR技术革新医疗实践:从远程急救到多学科协作

AR技术在国内外医院的应用 在现代医疗环境中,患者面临的挑战依然严峻:看病难、看病远、看病急。这些问题不仅影响了患者的治疗效果,也让医务工作者倍感压力。幸运的是,随着增强现实(AR)技术的发展&#xf…

【NodeJS】Node.js是什么?能做什么?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区:个人社区 💞 个人主页:个人主页 🙉 专栏地址: ✅ Java 中级 🙉八股文专题:剑指大厂,手撕 J…