忄亙 发表于 2024-4-20 02:06:27

求大神们帮解惑怎么改下

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()?
怎么改

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

shaozirui 发表于 2024-4-22 21:25:07

321321312
页: [1]
查看完整版本: 求大神们帮解惑怎么改下