【问题标题】:web scraping Beautiful soup [duplicate]网页刮美丽的汤[重复]
【发布时间】:2018-10-15 00:31:37
【问题描述】:

我正在尝试从

获取配料部分

https://www.walmart.com/ip/Nature-s-Recipe-Chicken-Wild-Salmon-Recipe-in-Broth-Dog-Food-2-75-oz/34199310

所以我做的是

import requests
from bs4 import BeautifulSoup
x=requests.get("https://www.walmart.com/ip/Nature-s-Recipe-Chicken-Wild-Salmon-Recipe-in-Broth-Dog-Food-2-75-oz/34199310")
soup=BeautifulSoup(x.content)
print(soup.find_all("p",{"class":"Ingredients"})[0])

但它的显示索引超出范围,即未找到元素,但在检查网站时该元素确实存在 'p class="Ingredients"'

【问题讨论】:

    标签: python python-3.x beautifulsoup


    【解决方案1】:

    坏消息,看起来这些元素是通过 JS 生成的。如果您“查看该页面的源代码”,则元素不存在,这是请求获取的 html。

    我会使用 selenium 之类的东西来自动化浏览器以获取完全呈现的 html,然后您可以使用 beautifulsoup 来解析成分。

    当网站使用 JS 生成大量内容而不是使页面更具交互性等时,我个人觉得很烦人。但是你要做什么......

    【讨论】:

    • 是的,我知道 selenium,但没有其他方法可以使用请求废弃网站吗?
    • 就像重复链接中问题的答案一样,您可以尝试模仿 JS 在请求中所做的请求。但这并不总是可能的,因为 JS 并不总是只是发出请求。除此之外,我不知道。
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2020-12-13
    • 2019-03-13
    • 2014-05-28
    相关资源
    最近更新 更多