【问题标题】:web-scraping in python using beautiful soup: AttributeError: 'NoneType' object has no attribute 'text'使用漂亮的汤在python中进行网络抓取:AttributeError:'NoneType'对象没有属性'text'
【发布时间】:2021-07-14 00:38:45
【问题描述】:

我正在使用 html 请求和漂亮的汤(我是新手)开发一个网络爬虫。对于 1 个网页 (https://www.superdrug.com/Make-Up/Face/Primer/Face-Primer/Max-Factor-False-Lash-Effect-Max-Primer/p/788724),我正在尝试获取产品的价格。 HTML 是:

<span class="pricing__now" itemprop="price">8.99</span>

我尝试过使用soup.find 和soup.find_all:

r = session.get(link)
r.html.render(sleep=3, timeout=30)
soup = BeautifulSoup(r.content, 'lxml')
price = soup.find('span', itemprop="price").text
r = session.get(link)
r.html.render(sleep=3, timeout=30)
soup = BeautifulSoup(r.content, 'lxml')
price = soup.find_all('span', itemprop="price").text

和 r.html.find:

r = session.get(link)
r.html.render(sleep=6, timeout=30)
price = r.html.find('body > div.pdp-container > div.content-wrapper.pdp > div > div > div.pdp__purchase-options > div.pricing > span:nth-child(2)', first=True).text

None 并返回空列表,或 AttributeError: 'NoneType' object has no attribute 'text'。我不确定为什么我无法获取这些信息。任何帮助将不胜感激。

【问题讨论】:

    标签: python html web-scraping beautifulsoup python-requests-html


    【解决方案1】:

    您可以从页面中嵌入的 Json 数据中获取价格。例如:

    import json
    import requests
    from bs4 import BeautifulSoup
    
    url = "https://www.superdrug.com/Make-Up/Face/Primer/Face-Primer/Max-Factor-False-Lash-Effect-Max-Primer/p/788724"
    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"
    }
    
    soup = BeautifulSoup(requests.get(url, headers=headers).content, "html.parser")
    
    data = json.loads(soup.select('[type="application/ld+json"]')[1].contents[0])
    
    # uncomment this to print all data:
    # print(json.dumps(data, indent=4))
    
    print(data["offers"]["price"])
    

    打印:

    8.99
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 2019-01-10
      • 2022-01-08
      • 1970-01-01
      • 2021-08-27
      相关资源
      最近更新 更多