我是相当新的Python
我正在尝试从其网站获取打印机的计数器值。该网站使用Javascript,我无法从中刮nothing。
网站元素看起来像这样,我需要突出显示的元素上的值。
我已经使用硒,请求,webdriver的,beautifulsoup试过。
试过所有webdriver.find方法等
我最新的代码看起来是这样,我想一堆其他的东西,但一无所获。
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
#url = requests.get('http://url')
#soup = BeautifulSoup(url.text, 'lxml')
driver = webdriver.Chrome('C:/Chrome/Driver/Path')
url = 'http://url'
get = driver.get(url)
html = driver.execute_script("return document.documentElement.outerHTML")
print(html)
我无法从网页上抓取任何内容,无法使用Xpath,Class,ID或其他任何内容进入文本框。
我可以从该打印机的其他网站成功获取元素。
感谢帮助
答案 0 :(得分:0)
这是什么打印出来?
我不认为,这条线将返回HTML文本
driver.execute_script("return document.documentElement.outerHTML")
您需要使用page_source属性来访问HTML据我知道...
driver.execute_script("return document.documentElement.outerHTML")
html = driver.page_source
答案 1 :(得分:0)
查看图像中的元素面包屑,似乎您的内容在框架内。 Selenium将每个帧视为一个单独的文档。您需要先切换到框架,然后才能对其内容进行操作。
driver.switch_to.frame(0)
如果它是第一帧,则上面应该起作用。然后driver.page_source
和您的定位器应该开始工作。
我对此进行了更详细的解释in this answer