我正在测试使用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网页浏览器上,如果我查看页面源代码,我看不到完整的内容。
有没有办法获取我提供的示例页面的完整内容?
答案 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)
请求与获取网页的页面源或可视元素不同,同时从网页查看源代码并不能让您完全访问网页上的所有内容,包括数据库请求和其他后端内容。你的问题不够明确,或者你误解了网页浏览的工作原理。