【发布时间】:2020-03-19 19:50:20
【问题描述】:
Selenium 可用于浏览网站(登录,获取网站页面的 html 源代码),
但是 Selenium 中没有任何东西可以通过xpath 查找/获取该 HTML 中的数据(find_element_by_xpath() 将查找元素,但不是标签之外的 TEXT 数据,因此必须使用其他东西,例如 lxml ),Selenium 绝对不能用于执行此操作,因为当您尝试时,它会引发错误。
没有任何使用 Selenium 获取 HTML 源代码的示例,将其传递给 lxml 以解析 HTML 并通过网络上任何地方的 xpath 查找/获取数据。
找不到了。
lxml 示例通常与 Python 'requests' 库一起给出,从该库中获取以字节为单位的响应 (response.content)。
lxml 使用这个response.content(字节),但是对于 lxml,没有函数接受 HTML 作为字符串。
Selenium 仅将 html 作为字符串返回:self.driver.page_source
那么在这里做什么呢?
我需要使用 lxml,因为它提供了 xpath 功能。
我不能使用 Python 的 requests 库来登录网站并导航到页面,因为他们的设计方式有些复杂,所以它不适用于该网站。
Selenium 是唯一可以登录、创建会话、在后续 GET 请求中传递正确 cookie 的东西。
我需要使用 selenium 和“page_source”(字符串),但我不确定如何转换为函数“lxml”所需的确切“字节”。
事实证明,使用 Python 进行抓取非常困难,因为这里的库不能协同工作,而且 Selenium 缺乏将 HTML 生成为字节的选项,
并且缺少 lxml 来接受字符串或字节形式的数据。
我们将不胜感激,但我不相信它可以得到解答,除非您特别遇到过这个问题,并且已经成功地一起使用了 Selenium + lxml。
【问题讨论】:
-
是的,可以获取页面源,然后使用lxml。使用 'driver.page_source' 获取 html。