python 的硒替代品?访问网页元素的最快方式
selenium alternative for python? Fastest way to access web elements
我正在尝试创建一个暴力破解器。在我当前的版本中,我只是使用 selenium 并以这种方式查找 Web 元素。这看起来很慢,可能是因为它加载了整个网站。 (只是一个本地托管的面板)。任何人都知道更好的方法来做到这一点,也许没有制作自动浏览器?对于任何想知道的人,我试图找到 2 个元素,但没有 api 等,所以我假设我不能通过 python.
中的请求库来做到这一点
您可以使用 headless chrome 来获取元素。这将加快获取元素的过程。
https://developers.google.com/web/updates/2017/04/headless-chrome
另一种选择是使用scrapy 抓取网页来获取你想要的信息来处理信息。
BeautifulSoup
是Python中解析网页的实际标准库。它非常适合服务器渲染或静态内容。它会在阻止 Web scraping、使用客户端呈现动态更新或需要 cookie 或身份验证的网站上崩溃。
那么BeautifulSoup
不剪的时候你用什么?
查看 Cypress. It's Javascript-native, but it has backend adapters 在 Python、Node、Ruby、php 和 .NET 上的工作。
即使没有适配器,Cypress 也是用于端到端测试和浏览器自动化的强大工具,它消除了 Selenium 带来的所有痛苦。如果您尝试抓取的信息需要身份验证、cookie、交互,或者受到反机器人代码的阻碍,请试一试。
如果您已经了解如何使用浏览器的开发工具检查请求,则可以在此处停止阅读。否则...
最后,所有这一切都假设您已经检查了浏览器开发工具中的网络选项卡,以验证您正在寻找的数据不是以易于解析的格式通过 XHR 传输的。如果您还没有看过那里,这里有一些 Chrome 说明:
右键单击感兴趣的页面 -> 检查 -> 网络 -> 刷新页面 -> 单击 xhr 过滤器
然后:
浏览每个 api 调用的响应选项卡,查看感兴趣的数据是否隐藏在众目睽睽之下。如果您想要的数据在那里,请检查请求选项卡以查看您的浏览器是否必须查看您必须发送的请求参数才能获取它。如果它是一个简单的 GET 请求,您很可能只需将 url 直接复制到您的浏览器中,它就会是您想要的数据。如果是 POST,您可以使用 Servistate 或 Postman 等工具进行试验,看看有什么用。我会像在浏览器中一样复制请求,然后在 POST 正文和其他参数中提取内容或交换内容,看看它是如何工作的,以及我可以逃脱什么。如果它不需要你有一个 cookie,你可以在 Python 中使用 urllib
。如果是这样,只需使用 Cypress,它会节省您的时间。
我正在尝试创建一个暴力破解器。在我当前的版本中,我只是使用 selenium 并以这种方式查找 Web 元素。这看起来很慢,可能是因为它加载了整个网站。 (只是一个本地托管的面板)。任何人都知道更好的方法来做到这一点,也许没有制作自动浏览器?对于任何想知道的人,我试图找到 2 个元素,但没有 api 等,所以我假设我不能通过 python.
中的请求库来做到这一点您可以使用 headless chrome 来获取元素。这将加快获取元素的过程。
https://developers.google.com/web/updates/2017/04/headless-chrome
另一种选择是使用scrapy 抓取网页来获取你想要的信息来处理信息。
BeautifulSoup
是Python中解析网页的实际标准库。它非常适合服务器渲染或静态内容。它会在阻止 Web scraping、使用客户端呈现动态更新或需要 cookie 或身份验证的网站上崩溃。
那么BeautifulSoup
不剪的时候你用什么?
查看 Cypress. It's Javascript-native, but it has backend adapters 在 Python、Node、Ruby、php 和 .NET 上的工作。
即使没有适配器,Cypress 也是用于端到端测试和浏览器自动化的强大工具,它消除了 Selenium 带来的所有痛苦。如果您尝试抓取的信息需要身份验证、cookie、交互,或者受到反机器人代码的阻碍,请试一试。
如果您已经了解如何使用浏览器的开发工具检查请求,则可以在此处停止阅读。否则...
最后,所有这一切都假设您已经检查了浏览器开发工具中的网络选项卡,以验证您正在寻找的数据不是以易于解析的格式通过 XHR 传输的。如果您还没有看过那里,这里有一些 Chrome 说明:
右键单击感兴趣的页面 -> 检查 -> 网络 -> 刷新页面 -> 单击 xhr 过滤器
然后:
浏览每个 api 调用的响应选项卡,查看感兴趣的数据是否隐藏在众目睽睽之下。如果您想要的数据在那里,请检查请求选项卡以查看您的浏览器是否必须查看您必须发送的请求参数才能获取它。如果它是一个简单的 GET 请求,您很可能只需将 url 直接复制到您的浏览器中,它就会是您想要的数据。如果是 POST,您可以使用 Servistate 或 Postman 等工具进行试验,看看有什么用。我会像在浏览器中一样复制请求,然后在 POST 正文和其他参数中提取内容或交换内容,看看它是如何工作的,以及我可以逃脱什么。如果它不需要你有一个 cookie,你可以在 Python 中使用 urllib
。如果是这样,只需使用 Cypress,它会节省您的时间。