Python 一堆/n';当我尝试提取文本时,会出现s

Python 一堆/n';当我尝试提取文本时,会出现s,python,Python,初试 classes = tree.xpath('//*[@data-status="active"]/text()') print ('Classes: ', classes) 返回以下内容: ['Active', '\n ', '\n\n ', '\n\n ', '\n\n ', '\n ', '\n\n ', '\n\n ', '\n\n ', '\n ', '\n\n

初试

classes = tree.xpath('//*[@data-status="active"]/text()')

print ('Classes: ', classes)
返回以下内容:

['Active', '\n        ', '\n\n        ', '\n\n        ', '\n\n      ', '\n        ', '\n\n        ', '\n\n        ', '\n\n
  ', '\n        ', '\n\n        ', '\n\n        ', '\n\n      ', '\n        ', '\n\n        ', '\n\n        ', '\n\n      ', '\n
', '\n\n        ', '\n\n        ', '\n\n      ', '\n        ', '\n\n        ', '\n\n        ', '\n\n      ', '\n        ', '\n\n
', '\n\n        ', '\n\n      ', '\n        ', '\n\n        ', '\n\n        ', '\n\n      ']
我应该得到所有数据状态为active的类,而不是一堆我很确定的新行

或者,当我将xpath扩展到实际文本时,会得到一个空数组,我相信我做得很好 第二次尝试:

classes = tree.xpath('//*[@data-status="active"]/course/title/class-name/text()')
打印出一个空数组“[]”

完整代码:

from appJar import gui
from splinter import Browser
from lxml import html
import requests
browser = Browser('chrome', headless=True)


browser.visit('www.sitelogin.com')  #Access
browser.fill('username', 'johndoe') #Login
browser.fill('password', 'pass1234') #Login
button = browser.find_by_name('commit') #Login
button.click() #Login

divs = browser.find_by_id("child-89751")
within = divs.first.find_by_name('calculated-grade')
if browser.is_text_present('Current Class Schedule'):
    print("Success")
    print(within)
page = browser.html
tree = html.fromstring(page)
classes = tree.xpath('//*[@data-status="active"]/course/title/class-name/text()')
grades = tree.xpath('//span[@class="numeric-grade"]/text()')

print ('Classes: ', classes)
print ('Grades: ', grades)
预期输出(第页上的所有活动类。请参见:)标题为蓝色大字: 预期:

Digital Portfolio Grade 9, English 1 H, Algebra 1H etc.

\n
是传递给
html.fromstring(第页)

您可以通过运行以下命令来忽略它们:

page = ' '.join(page.split('\n'))
html.fromstring(page)

您的文档看起来像什么?如果没有这个例子,这不是很有用。你有一个print语句,它与你所说的完全不同,它被返回(字符串列表)。@tadman它是直接从站点page=browser.html tree=html下载的html。fromstring(page)什么站点?哪一页?只是…什么?你需要更具体一些。考虑一下我们如何重现您的结果。代码没有您正在处理的数据重要。记住:垃圾进来,垃圾出去。输入数据在这里是绝对重要的。这一点我强调得不够。是的,这应该行得通,但文本有问题,因为文本之间只有空格,\n没有任何文本。请用您希望看到的输出更新您的问题。添加了预期的。我们需要页面源代码来查看代码是否有效。也就是说,我们需要看到代码看到了什么。在chrome do:view source中:稍微篡改以删除登录信息,gist.github.com/sapblat11/d65be974ef9dcfb41a91679dbeb97de2在没有互联网的情况下打开将生成我正在处理的当前页面。