为什么这个Python Splinter调用没有返回所有正文文本?

时间:2017-10-09 07:55:19

标签: python python-2.7 parsing splinter

from splinter import Browser
from splinter.exceptions import ElementDoesNotExist
from selenium import webdriver
from selenium.common.exceptions import WebDriverException

browser.find_by_tag('body').text

browser.visit(str('http://ariismits.com/contact-us'))
a = browser.find_by_tag('body').text
print a

只返回菜单......

" u' HOME |哲学|投资组合|我们做什么|博客|联系\ n地图数据\ xa92017谷歌\ n使用条件\ n报告地图错误\ n地图\ n卫星\ n \ n \ n \ n \ n \ n \ nAriiSmits' u' HOME |哲学|投资组合|我们做什么|博客|联系\ n地图数据\ xa92017谷歌\ n使用条件\ n报告地图错误\ n地图\ n卫星\ n \ n \ n \ n \ n \ n \ nAriiSmits'"

...但是当我访问该页面时,我可以看到电话号码,电子邮件地址等

为什么不包含在回复中?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。答案是,代码运行时,文本必须对人类用户可见。这个网站有响应式设计,当窗口较小时,我正在寻找的文字不可见。所以我跑的时候

browser.find_by_tag('body').text

斯普林特没有看到文字。即使我正在寻找的文本是在HTML中,它在屏幕上看不到(由于响应式设计),因此Splinter(和Selenium也是这样工作)没有捕获文本。

就我而言....

browser = Browser('chrome')
browser.visit('http://ariismits.com/contact-us')
它在我的笔记本电脑上启动了一个新窗口,只有半屏。最大化窗口并重新运行" browser.find_by_tag(' body')。text"按照我的意愿工作。有关调整大小的详细信息,请参阅(Manipulating browser (window) size using Splinter)。

我希望能节省一些时间。 : - )