Python 3:使用请求无法获得网页的完整内容

时间:2017-12-09 16:32:17

标签: python web-scraping python-requests

我正在测试使用requests模块来获取网页的内容。但是当我看到内容时,我发现它没有得到页面的全部内容。

这是我的代码:

import requests
from bs4 import BeautifulSoup

url = "https://shop.nordstrom.com/c/womens-dresses-shop?origin=topnav&cm_sp=Top%20Navigation-_-Women-_-Dresses&offset=11&page=3&top=72"
page = requests.get(url)

soup = BeautifulSoup(page.content, 'html.parser')
print(soup.prettify())

另外在Chrome网页浏览器上,如果我查看页面源代码,我看不到完整的内容。

有没有办法获取我提供的示例页面的完整内容?

2 个答案:

答案 0 :(得分:3)

使用JavaScript呈现页面,从而获取更多请求以获取其他数据。您可以使用selenium获取整个页面。

from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
url = "https://shop.nordstrom.com/c/womens-dresses-shop?origin=topnav&cm_sp=Top%20Navigation-_-Women-_-Dresses&offset=11&page=3&top=72"
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()
print(soup.prettify())

对于其他解决方案,请参阅我对Scraping Google Finance (BeautifulSoup)

的回答

答案 1 :(得分:0)

请求与获取网页的页面源或可视元素不同,同时从网页查看源代码并不能让您完全访问网页上的所有内容,包括数据库请求和其他后端内容。你的问题不够明确,或者你误解了网页浏览的工作原理。