【问题标题】:Unable to print text from website using python无法使用python从网站打印文本
【发布时间】:2021-10-24 06:03:25
【问题描述】:

因为它给我一个关于品牌的错误,我应该如何解决它

Traceback(最近一次调用最后一次): 文件“d:/python/davago.py”,第 15 行,在 品牌= property.find('h3', class_ = 'productitem--vendor').text.strip() AttributeError: 'NoneType' 对象没有属性 'text'

import requests
from bs4 import BeautifulSoup
from bs4 import *
import pandas as pd
import time

url = 'https://dvago.pk/collections/cardio-vascular-system?page=1&grid_list=grid-view'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
content = soup.find_all('div', class_ = 'productitem')
#print(content)
for property in content:
    names= property.find('div', class_ = 'productitem--info')
    name= names.find('h2', class_ = 'productitem--title').text.strip()
    brand= property.find('h3', class_ = 'productitem--vendor').text.strip()
    

    print(name,brand)

【问题讨论】:

    标签: python pandas beautifulsoup python-requests webdriver


    【解决方案1】:

    如果您看到最后三个内容没有供应商名称,那么您可以使用 tryexcept 块来处理 exception 并打印相应的声明

    import requests
    from bs4 import BeautifulSoup
    from bs4 import *
    import pandas as pd
    import time
    
    url = 'https://dvago.pk/collections/cardio-vascular-system?page=1&grid_list=grid-view'
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    content = soup.find_all('div', class_ = 'productitem')
    #print(content)
    for property in content:
        names= property.find('div', class_ = 'productitem--info')
        try:
            name= names.find('h2', class_ = 'productitem--title').text.strip()
        except AttributeError:
            name="Company name not available"
        try:
            brand= property.find('h3', class_ = 'productitem--vendor').text.strip()
        except AttributeError:
            brand="Brand name not available"
        
    
        print("Company Name:",name)
        print("Brand Name:",brand)
    

    【讨论】:

      【解决方案2】:

      您应该首先找到“productgrid--items”,然后查看其中的每个项目。 'productitem' 类可能还有其他用途,但其中没有 h3,这就是为什么你会得到异常:

      import requests
      from bs4 import BeautifulSoup
      from bs4 import *
      # import pandas as pd
      # import time
      
      url = 'https://dvago.pk/collections/cardio-vascular-system?page=1&grid_list=grid-view'
      r = requests.get(url)
      soup = BeautifulSoup(r.content, 'html.parser')
      aaa = soup.find('div', class_='productgrid--items') ## <------
      content = aaa.find_all('div', class_='productitem') ## <------
      # print(content)
      for property in content:
          names = property.find('div', class_='productitem--info')
          name = names.find('h2', class_='productitem--title').text.strip()
          brand = property.find('h3', class_='productitem--vendor').text.strip()
      
          print(name, brand)
      

      【讨论】:

        猜你喜欢
        • 2021-06-07
        • 2015-09-04
        • 1970-01-01
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 1970-01-01
        相关资源
        最近更新 更多