Python:如何使用请求或 aiohttp 获取具有 Jinja 模板的 HTML 文本?

Python: How to get HTML text that has Jinja templates using requests or aiohttp?

我正在使用python、request或aiohttp方法获取页面,BeautifulSoup4解析网页。 服务器 HTML 页面使用 jinja 模板,所以当我使用请求或 aiohttp 获取此页面时,我得到如下内容:

<a href="/{{username}}" class=\'pr\'>

但是如果您使用浏览器打开此页面,代码如下所示:

<a href="/gavrilka" class=\'pr\'>

请求代码:

import requests
url = 'MY URL'
header = {"MY HEADERS"}
payload = {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))

aiohttp 代码:

import aiohttp
url = 'MY URL'
header = {"MY HEADERS"}
payload = {}
async with aiohttp.ClientSession() as session:
    async with session.get(base_url, headers=headers) as resp:
        data = await resp.text()
        print(data)
    await session.close()

我应该如何获得正确的页面文本?

用过 selenium 和 phantomjs,现在可以用了。

from selenium import webdriver
from bs4 import BeautifulSoup

url = "https://yourlink"

driver = webdriver.PhantomJS() 
driver.set_window_size(1024, 768)  # optional
driver.get(url)
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'lxml')