比如有一段 html 源码:
html='''span1
span2'''
注意如上 html 源码中,sp1 与 sp2 之间有个换行,并且 sp2 之前还有几个空格.
保存最 htm 文件,使用浏览器(ie firefox chrome)渲染后,得到的网页文本是:
span1 span2 #注意 span1 与 span2 之间有一个空格.
如果使用 beautifulSoup 获取网页文本,代码如下:
from bs4 import BeautifulSoup as bs
s=bs(html,'html5lib')
web_text=s.get_text()
print web_text
结果显示如下:
span1
span2
或者:print s.get_text(strip=True),则结果显示如下:
span1span2 #注意 span1 与 span2 之间没有空格
由此可见,使用 beautifulsoup 获取到网页文本与浏览器渲染后的网页文本,其格式是不一样的.
那么,要想使用 beautifulsoup 获取到和浏览器渲染后的网页文本的格式一样,该怎么操作呢?
希望方法具有普遍性,不仅仅是针对如上例子中的 htm 源码.
多谢!
这是页面是用ajax异步加载刷新的,python用bs获取不到完整的内容,需要通过selenium等webdriver来模拟浏览器行为获取