相关文章推荐
腼腆的柠檬  ·  python ...·  3 周前    · 
有情有义的大白菜  ·  python ...·  3 周前    · 
完美的馒头  ·  python QTreeWidget ...·  2 周前    · 
失眠的烤红薯  ·  python qt textBrowser ...·  2 周前    · 
烦恼的鸵鸟  ·  switch 语句 (C) | ...·  1 年前    · 
细心的乒乓球  ·  (C++) ...·  1 年前    · 

Python 3:使用请求不能获得网页的全部内容

16 人关注

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

Here is my code:

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网页浏览器上,如果我查看页面源码,我没有看到完整的内容。

有什么方法可以获得我提供的示例页面的完整内容吗?

4 个评论
"另外,在chrome浏览器上,如果我看一下页面的源代码,我看不到完整的内容。"那你为什么责怪 requests
该页面可能是由浏览器中运行的javascript动态生成的。 这是很常见的,在stackoverflow上有很多问题都是针对这个确切的问题。
可能就像@larsks说的那样,你能告诉我们更多的细节吗,当你在浏览器中显示源代码时,你看不到代码的哪一部分?
TJ1
@ElisByberi 我不怪 requests ,我只是说我在使用请求。
python
web-scraping
python-requests
TJ1
TJ1
发布于 2017-12-10
2 个回答
Dan-Dev
Dan-Dev
发布于 2017-12-10
已采纳
0 人赞同

该页面由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())