吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 555|回复: 15
收起左侧

[求助] 关于python的selenium模块问题:

[复制链接]
tinyu 发表于 2024-9-29 13:27
本帖最后由 tinyu 于 2024-9-29 14:07 编辑

问题背景:
最近不是临近国庆了嘛,自己跟着网上的教程学习用python+selenium写个自动打开12306扫码登录的界面,待扫码后跳转指定查票页面,等待用户看完(买完)票关掉浏览器后程序退出,其间遇到很多问题,能从网上翻到教程解决的,都试了,但就剩下两个问题,实在找不到有用的内容,没办法才来吾爱问问
(有源码,纯讨论,非求源求破)


问题1:
selenium每次运行总能在C:\Program Files 和C:\Program Files (x86)下留下“scoped”前缀文件夹,看着很杂乱,想怎么弄不让它生成,网上找到了
[Python] 纯文本查看 复制代码
options.add_argument(r'user-data-dir=C:\Windows\Temp\Chrome\User Data')

嗯,确实重定向了,但是两个文件夹下还是有点别的玩意(直接删了,没截图,忘记是啥玩意了)
然后接着找,
[Python] 纯文本查看 复制代码
browser.quit()

这个可以退出浏览器并清理文件,经过测试后,没问题了,
我现在的方案是加了个input,类似cmd的“按任意键继续”,一个回车就执行quit
[Python] 纯文本查看 复制代码
                    input("按任意键退出浏览器")
                    browser.quit()
                    break

但我在想能不能监测selenium打开的浏览器如果被关闭就自动执行quit而不用特意转回命令行窗口再按个键,这里就不会了

问题2:
我直接运行py源码没问题,但是用pyinstaller打包完一旦执行到selenium阶段就有部分“异常”输出,不影响正常代码运行,但就不美观,
输出内容是这样

DevTools listening on ws://127.0.0.1:60404/devtools/browser/c383eb64-ebb3-4cc1-bee6-c173acc89e9a
[13996:14860:0929/132042.399:ERROR:device_event_log_impl.cc(215)] [13:20:42.405] USB: usb_service_win.cc:415 Could not read device interface GUIDs: 系统找不到指定的文件。 (0x2)
[13996:14860:0929/132042.399:ERROR:device_event_log_impl.cc(215)] [13:20:42.406] USB: usb_device_handle_win.cc:1046 Failed to read descriptor from node connection: 连到系统上的设备没有发挥作用。 (0x1F)
按任意键退出浏览器[2136:18912:0929/132102.630:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
[2136:18912:0929/132114.609:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
虽然不影响代码,但是看着不怎么舒服,而我不懂怎么屏蔽这类输出



(我目前只会selenium,其他类型框架还在学习)
(如果某个新的框架,比如DrissionPage,playwright确实可以搞定这类问题,那还是值得一学)

源码部分内容展示:
image.png


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ReLoading 发表于 2024-9-29 13:50
这个框架太老了,早该退休了,换playwright吧,比这个强大的多
放羊的狼 发表于 2024-9-29 13:55
之前好像遇到过类似逻辑,水平有限,只看了看第一个问题,既然是浏览器,那就是对象,是对象就有存在状态,多线程监测一下当前对象的状态,应该是可以的吧?或者可能存在更简单的对象方法来监测是否存在。
T4DNA 发表于 2024-9-29 14:02
 楼主| tinyu 发表于 2024-9-29 14:03
ReLoading 发表于 2024-9-29 13:50
这个框架太老了,早该退休了,换playwright吧,比这个强大的多

selenium至少还会写出我需要的功能,playwright只听过名字,没了,啥都不会
bean0283 发表于 2024-9-29 14:16
DrissionPage比selenium简单好用,我一个外行自学的,selenium搞好久不会,DrissionPage没多久就入门了
 楼主| tinyu 发表于 2024-9-29 14:24
bean0283 发表于 2024-9-29 14:16
DrissionPage比selenium简单好用,我一个外行自学的,selenium搞好久不会,DrissionPage没多久就入门了

ok,我有空去试试能不能迁移功能,主要是网上12306这类教程基本都是selenium的,没找着Drissionpage
q546624527 发表于 2024-9-29 14:39
早换playwright了,selenium不好用,只是资历老点而已
梦汐 发表于 2024-9-29 14:54
chrome_options = Options()
# 忽略证书错误
chrome_options.add_argument("--ignore-certificate-errors")
# 忽略 DevTools listening on ws://127.0.0.1... 提示
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
梦汐 发表于 2024-9-29 14:55
本帖最后由 梦汐 于 2024-9-29 14:59 编辑

那是浏览器的异常通知,关闭掉就行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 03:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表