python - Selenium 页面源与实际不匹配
问题描述
我试图解析推文(比方说https://twitter.com/Tesla),但我遇到了一个问题,一旦我使用html = browser.page_source
它下载源代码与检查元素时看到的不匹配(Ctrl+Shift+一世)。它显示了一些推文,但不是几乎所有推文,此外,当将代码保存到文件并在 Chrome 中打开时,我得到了一些难以理解的东西。我以前有过使用 selenium 的经验,但从未遇到过这样的问题。也许还有其他一些功能可以获取源代码?
顺便说一句,我知道 Twitter 提供了一个 API,但他们没有给出任何理由就拒绝了我的请求,即使我不打算做任何违反他们条款的事情。
解决方案
嘿,这是硒中最糟糕的做法之一
出于多种原因,不建议使用 WebDriver 登录 Gmail 和 Facebook 等网站。除了违反这些网站的使用条款(您有可能关闭帐户)之外,它速度慢且不可靠。
理想的做法是使用电子邮件提供商提供的 API,或者在 Facebook 的情况下使用开发人员工具服务,该服务公开了用于创建测试帐户、朋友等的 API。尽管使用 API 可能看起来有点额外的艰苦工作,但您将在速度、可靠性和稳定性方面得到回报。API 也不太可能更改,而网页和 HTML 定位器经常更改并需要您更新测试框架。
在测试的任何时候使用 WebDriver 登录第三方站点都会增加测试失败的风险,因为它会使测试时间更长。一般的经验法则是更长的测试更脆弱和不可靠。
推荐阅读
- java - 为什么即使 MethodHandle 正常,我也会在 invokeExact 上得到 WrongMethodTypeException
- sql - 在 SQL 中生成所有可能的组合?
- c++ - _CrtSetDbgFlag 未按预期工作:返回 NULL
- c++ - 在函数中使用传递的参数列表
- java - 如何在 JAVA servlet 方法中注入字符串?
- php - 获取未分配给 WooCommerce 变体的购物车项目产品属性
- apache-camel - 使用 camel-smb SMB 拾取(大)文件,同时仍被写入
- php - PHP / Laravel 不接受 .upd 文件作为文件
- python - Flakehell 忽略 darglit 的附加 setup.cfg 参数
- matlab - 如何找到平稳概率分布并确定状态概率将在哪一步保持不变