鱼C论坛

 找回密码
 立即注册
查看: 482|回复: 2

[已解决]求大神们帮解惑怎么改下

[复制链接]
发表于 2024-4-20 02:06:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
res = requests.get(url,headers=wz)
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,'lxml')
lis = soup.find_all('li',class_='col-4')
for li in lis:
    a = li.find_all('a')
    地址 = a.get('href')
    标题 = a.text


AttributeError: ResultSet object has no attribute 'get'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?
怎么改
最佳答案
2024-4-20 02:06:45
首先,这个错误是因为你在使用`a.get('href')`之前,将`a`声明为一个ResultSet对象(即将多个结果存储在列表中)。而`get()`方法只能用于单个元素,不能用于列表。

解决这个问题的方法是,将`a`从ResultSet对象转换成单个元素。可以使用`li.find()`方法来获取第一个匹配到的元素,然后再使用`get()`方法获取`href`属性。

下面是修改后的代码:
res = requests.get(url, headers=wz)
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text, 'lxml')
lis = soup.find_all('li', class_='col-4')
for li in lis:
    a = li.find('a')
    地址 = a.get('href')
    标题 = a.text
    print(地址, 标题)

这样就能正常获取每个`li`标签下第一个`a`标签的`href`属性和文本内容了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-20 02:06:45 | 显示全部楼层    本楼为最佳答案   
首先,这个错误是因为你在使用`a.get('href')`之前,将`a`声明为一个ResultSet对象(即将多个结果存储在列表中)。而`get()`方法只能用于单个元素,不能用于列表。

解决这个问题的方法是,将`a`从ResultSet对象转换成单个元素。可以使用`li.find()`方法来获取第一个匹配到的元素,然后再使用`get()`方法获取`href`属性。

下面是修改后的代码:
res = requests.get(url, headers=wz)
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text, 'lxml')
lis = soup.find_all('li', class_='col-4')
for li in lis:
    a = li.find('a')
    地址 = a.get('href')
    标题 = a.text
    print(地址, 标题)

这样就能正常获取每个`li`标签下第一个`a`标签的`href`属性和文本内容了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-22 21:25:07 | 显示全部楼层
321321312
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 05:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表