我正在一个python项目中,我想在该项目中返回数据库中第n个数据集的标题。用户应该能够输入一个数字,例如4,该代码将输出第4个数据集的标题。我尝试使用for循环,但是我的代码仅将第一个数据集返回4次,而不是第4个数据集。任何帮助将不胜感激!
import requests
from bs4 import BeautifulSoup
response=requests.get('http://catalog.data.gov/dataset?q=&sort=metadata_created+desc')
soup=BeautifulSoup(response.text, 'html.parser')
num=input("Enter a number:")
print(num)
data=[]
for x in range(int(num)+1):
title=soup.find('div', attrs={'class':'notes'})
dataSet=title.text
data.append(dataSet)
print(data)
答案 0 :(得分:0)
您应该使用find_all
方法来获取所有标题。然后,您可以获取标题的num
元素:
import requests
from bs4 import BeautifulSoup
response=requests.get('http://catalog.data.gov/dataset?q=&sort=metadata_created+desc')
soup=BeautifulSoup(response.text, 'html.parser')
num=input("Enter a number:")
print(num)
data=[]
titles = soup.find_all('div', attrs={'class':'notes'})
title=titles[int(num)-1]
dataSet=title.text
data.append(dataSet)
print(data)