使用 Python request.get 的不完整 HTML 内容

Suh*_*een 1 python web-scraping

我正在尝试使用 Python 中的 request.get 从 URL 获取 Html 内容。但我得到不完整的回应。

import requests
from lxml import html


url = "https://www.expedia.com/Hotel-Search?destination=Maldives&latLong=3.480528%2C73.192127&regionId=109&startDate=04%2F20%2F2018&endDate=04%2F21%2F2018&rooms=1&_xpid=11905%7C1&adults=2"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',
    'Content-Type': 'text/html',
    }

response = requests.get(url, headers=headers)
print response.content
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议为获得准确的完整响应而进行的更改。

注意:使用 selenium 可以获得完整的响应,但这不是推荐的方法。

And*_*son 6

如果你需要获取 JavaScript 动态生成的内容,又不想使用 Selenium,可以试试支持 JavaScript 的requests-html工具:

from requests_html import HTMLSession

session = HTMLSession()
url = "https://www.expedia.com/Hotel-Search?destination=Maldives&latLong=3.480528%2C73.192127&regionId=109&startDate=04%2F20%2F2018&endDate=04%2F21%2F2018&rooms=1&_xpid=11905%7C1&adults=2"
r = session.get(url)
r.html.render()

print(r.content)
Run Code Online (Sandbox Code Playgroud)