ResultSet对象没有属性

ResultSet对象没有属性

刮取一个网页时,我总是遇到一个问题。


  AttributeError:ResultSet对象没有属性“ find”。您可能正在将项目列表像单个项目一样对待。当您打算致电find()时,您是否致电过find_all()?


谁能告诉我如何解决这个问题?我的代码如下:

import requests
r = requests.get('https://www.example.com')
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})
records = []
for result in results:
    name = results.find('div', attrs={'class':'name'}).text
    price = results.find('div', attrs={'class':'price'}).text[13:-11]
    records.append((name, price,))


我想问一个接近的问题。如果我要剪贴多个页面,如下图所示,我使用下面的代码,但仍仅剪贴首页可以解决此问题吗?

import requests
for i in range(100):
    url = "https://www.example.com/a/a_{}.format(i)"
    r = requests.get(url)
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})

最佳答案

尝试这个。您将结果与结果混淆了:

import requests
r = requests.get('https://www.example.com')
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})
records = []
for result in results:
    name = result.find('div', attrs={'class':'name'}).text # result not results
    price = result.find('div', attrs={'class':'price'}).text[13:-11]
    records.append((name, price,))

08-24 21:23