我正在使用python请求和漂亮汤来验证一个html文档。但是,登录页面的服务器有一些后端代码,这些代码在呈现最终的html文档之前会延迟几秒钟。我尝试过redirect=true方法,但最终还是使用了原始文档。在浏览器上加载url时,服务器创建页面时会有2-3秒的延迟。我尝试过不同的示例,比如页面加载后的url2.geturl(),但所有这些示例都会返回原始的url (并且在2-3秒过去之前做得很好)。我需要一个模拟浏览器的东西,并抓取最终的文档。
顺便说一句,我能够在Chrome中查看正确的DOM元素,只是在python中没有问题。
发布于 2019-02-09 05:49:31
经过几个循环后就明白了这一点。这需要两种解决方案的组合(使用python selenium包和time.sleep)。将后台chrome进程设置为无头运行,获取url,等待服务器端代码完成,然后加载文档。在这里,我使用BeautifulSoup来解析DOM。
from selenium import webdriver
from bs4 import BeautifulSoup
import time
def run():
url = "http://192.168.1.55"
options = webdriver.ChromeOptions()
options.add_argument('headless')
browser = webdriver.Chrome(chrome_options=options)
browser.get(url)
time.sleep(5)
bs = BeautifulSoup(browser.page_source, 'html.parser')
data = bs.find_all('h3')
if __name__ == "__main__":
run()https://stackoverflow.com/questions/54598771
复制相似问题