结果集对象没有属性“find_all" [英] ResultSet object has no attribute 'find_all'

查看:44
本文介绍了结果集对象没有属性“find_all"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我抓取一个网页时,我总是遇到一个问题.

i always met one problem, when I scraping one web page.

AttributeError: ResultSet 对象没有属性find".您可能将项目列表视为单个项目.当您打算调用 find() 时,您是否调用了 find_all()?

AttributeError: ResultSet object has no attribute 'find'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?

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

anyone can tell me how to solve this? my code as below:

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,))

我想问一个接近的问题.如果我想刮多个页面.像下面这样的模式,我使用如下代码,但仍然只刮第一页你能解决这个问题吗.

I want to ask a close question.If I want to scrap multiple pages.the pattern like below,I use the code as below,but still scrap the first page only Can you solve this issue.

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'})

推荐答案

试试这个.您将结果与结果混为一谈:

Try this. You mixed up results with result:

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,))

这篇关于结果集对象没有属性“find_all"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆